The primary programming model for Silverlight is a managed API, but errors (as opposed to exceptions) still exist at several points in the overall architecture and in the supporting development environment.
Silverlight is ultimately a plug-in hosted in one of two possible control models (COM or NPAPI). You introduce Silverlight into the host using an object element, or some technique that introduces the plug-in instance into the DOM directly.
During the phase where Silverlight is being introduced to the host, it is possible that errors are reported to scripting even before the plug-in instance can be instantiated. This might happen if you specify param elements with invalid data, or specify invalid values for an attribute of the object element such as data.
If there are no errors to this point, and the managed API is now initiated by a successful package loading of Source, then most errors that originate with Silverlight can now be handled as managed application exceptions. For details, see Application Services.