<1>有两个很重要的异常类它们派生自System.Exception类
System.SystemException:该类通常由.net运行库抛出的异常,或者有着非常一般的本质并且可以由几乎所有的应用程序抛出的异常,System.SystemException异常的子类包括表示致命错误和非致命错误的异常;
System.ApplicationException:这个类非常重要,因为它是第三方定义的异常基类,如果自己定义的任何异常覆盖了应用程序独有的错误情况,就应该使它们直接或间接派生自System.ApplicationException类;
<2>try...catch...finally执行步骤:
1.执行的程序流入try块;
2.如果在try块没有发生异常,在块中就会正常执行操作。当程序流到达try块的末尾后,如果存在一个finally块,程序流就会自动进入到finally块,但是如果在try块中检测到一个错误,程序流就会跳转到catch
3.在catch块中处理错误;
4.在catch块执行完后,如果存在一个finally块,程序流就会自动进入到finally块;
5.执行finally块;
注意:可以省略finally块;可以提供任意多个catch块处理不同类型的错误,但不应该包含过多的catch块,以防降低应用程序的性能
<3>注意
1.发生异常后,try块中,异常代码后的代码不会执行
2.finally块中的代码,无论是否发生异常都会执行,会在try或catch中的return之前执行
3.finally块中不能写return语句
4.try块中有return语句,finally也会执行,并且会在return之前执行;
5.即便没有catch,finally中的代码也会执行,但finally之后的代码不会执行;