异常机制是在程序出现错误时,程序该如何处理,它提供了程序退出的安全通道。不要应用异常处理机制来对付突然出现在程序中的所有错误。因为异常发生时,它会确认是什么异常类型,这通常要花费一定的时间,尽可能以编程的方式判断可能发生的错误或事件。
异常处理格式:
Try
{
//程序代码块;
//尽力执行该代码块,并捕捉可能发生的异常
}
catch(Exception e)
{
//异常处理代码块;若异常不被处理,程序将会中止。
//一个try,可对应多个catch,异常处理机制会搜寻参数与异常类型相符的,进入那个catch从句。必须正确排列捕获异常的catch子句,范围小的Exception放在前面的catch。即如果Exception之间存在继承关系,就应把子类的Exception放在前面的catch子句中。
//若当前处理不了该异常,那么把它再抛出。也可在此再抛出异常,实现对错误的封装;
//没有表达式的throw(throw;),将会再次抛出被catch捕捉到的异常。
//使用不带参数的catch子句,则可以捕获任意类型的异常
}
finally
{
//存在于异常处理的标准事件流之外。
//用来清理资源或还原相关设置信息等其他操作
//是否发生异常,均要执行的代码块;
}
throw用于引发异常,可引发预定义异常和自定义异常。
如果方法遇到一个不知道如何处理的意外情况(abnormal condition),那么它应该抛出异常。throw语句无条件地把控制转移到别处,若有try{}catch{},它将转移到能处理这个异常的第一条catch子句。
在做异常处理的时候,最好能在应用程序所有的入口处(事件处理函数,主函数,线程入口)使用try-catch。但是不要在程序构造函数入口处添加try-catch,因为此处产生异常,它自己并没有能力来处理,因为它还没有构造完毕,只能再向外层抛出异常。要避免使用了try-catch但没有处理异常的情况,否则就相当于给异常放行。
|