首页 > 代码库 > 结构化异常处理(三)系统级异常和应用程序级异常

结构化异常处理(三)系统级异常和应用程序级异常

一、系统级异常

1.准去的说,.NET平台引发的一场应被称为系统异常。这些异常被认为是无法修复的致命错误。

2.系统异常直接派生自名为System.SystemException的基类,该基类派生自System.Exception。

SystemException除了一组自定义的构造函数不添加任何功能。

public class SystemException :  Exception

{

  //各种构造函数

}

3.当一个异常类型派生自System.SystemException时,我们就能够判断引发该异常的实体是.NET运行库而不是正在执行的程序库代码。

可以通过is关键字来验证这个结论:

NullReferenceException nullRefEx = new NullReferenceException();Console.WriteLine("NullREferenceException is a SystemException? : {0}", nullRefEx is SystemException);

二、应用程序级异常
1.自定义异常应当派生自System.ApplicationException类型:

public class ApplicationException : Exception

{

  //各种构造函数

}

就像系统异常一样,应用程序异常并不在一组构造函数外再定义其他任何成员。

2.从功能上讲System.ApplicationException的唯一目的就是标识出错误的来源。

当读者处理一个派生自System.ApplicationException的异常时,可以设想异常是由正在执行的应用程序代码库引发的,而不是由.NET基础类库或.NET运行时引擎引发的。