Many applications and components in the .NET Framework use exceptions to indicate error conditions. Exceptions are an in-process error-reporting mechanism that automatically propagate up the call chain until they hit a user interface or process boundary.
read more