异常:是当程序发生错误时产生的一种信号,在.NET中广泛使用。
异常有除数为0,数组下标出界,空的对象引用,文件不存在等。
每种异常类型都是一个类,分两大类:System.SystemException 和System.ApplicationException
.NET中异常处理方式
1.异常被对象所表现而不是错误代码
2.异常的产生是通过throwing一个该异常的对象实现的
3.异常的捕获是通过catch该异常的对象
4.命名上可以读出是哪类异常:ArithmeticException,DivideByZeroException,etc.
捕获异常try-catch
当代码段有可能发生异常的时候,我们应该把代码段放在try中,捕获到异常后的处理方法放置到catch中
一个try可以有多个catch方法,但种类要不一样,为每个可能的Exception制定解决方法。如
FormatException 类型错误
OverflowException 超过范围错误
Exception ex 其他错误
异常处理的系统流程
当程序一个异常的时候,它会自动抛出异常,此时.NET进入“异常处理模式”
暗示:如果你不想让程序被错误所终止,你要在适当地方使用try-catch;如果你想让异常处理继续,你要在catch子句中写出一些具体的方法,空的catch段相当于给异常放行。
在执行完catch子句后,程序将继续执行,除非在catch子句中有return,throw 或exit。
嵌套的try-catch
异常捕获到顺序
必须正确排列捕获异常的catch子句
范围小的Exception 放在前面的catch子句
如果Exception之间有继承关系,把子类放在前面的catch子句中,把父类放在后面的catch子句中。
try-catch-finally:确保一些收尾工作。(无论进不进catch,都会进入finally)
抛出异常 Throw Exceptions
类中可以抛出异常,不返回错误代码,不输出错误些信息;抛出特定的类型。
设计自己的异常
创建独特的异常,使它适合于特定的应用程序
跟踪Tracing
跟踪==运行时输出信息
当运行出错时,我们有信息可以参考,是数据记录器。
思路:程序中输出要输出的信息,在启动时可选:Enable/disable
配置跟踪
最常用的方法是在.NET config中配置
例:
1.如果应用程序是App.exe,那么config文件就是App.exe.config
2.在appSettings区中添加(key,value)值对
3.放置.config文件于.exe的目录下
在VS中创建.config文件
通常把.config放置在.EXE同目录下 binDebug and binRelease
不过,如果你这么做,Visual Studio 将删除它!
所以,通过项目来建立app.config
Project menu,Add New Item…,Application Config File
edit.config file appropriately
VS will copy to binDebug & rename
跟踪执行