异常处理
异常处理:
1.哪些地方需要try?
网络操作,文件操作,数据库操作,除法操作,强制类型转换操作.
2.finally代码块 :无论如何,只要有try,就会最后执行finally, 一般用来释放 资源的.. 如果出现异常的话,必须catch,否则try也没有用
3.Catch的子类抛出异常 catch(DivideByZeroException e){}
4.什么是异常?
5.程序运行时发生的错误。(错误的出现并不总是程序员人的原因,有时应用程序会因为最终用户或运行代码的环境改变而发生错误。比如:1.连接数据库时数据库服务器停电了;2.操作文件时文件没了、权限不足等;3.计算器用户输入的被除数是0;4.使用对象时对象为null;等等。)
6..net为我们把“发现错误(try)”的代码与“处理错误(catch)”的代码分离开来。
7.异常处理的一般代码模式:
8.try{ … }catch{ … }finally{ … }
9.try块:可能出问题的代码。当遇到异常时,后续代码不执行。
10.catch块:对异常的处理。记录日志(log4net),继续向上抛出等操作。(只有发生了异常,才会执行。)
11.finally块:代码清理、资源释放等。无论是否发生异常都会执行
12.异常处理代码的其他几种形式:
13.try → 多个catch → 一个finally
14.try→(1个或多个catch),多个catch的顺序问题。没有finally。
15.try→finally(只能有一个)
16.注意点:
17.发生异常后,try块中,异常代码后的代码不会执行。
18.finally块中的代码,无论是否发生异常都会执行。
19.finally中不能写return语句。
20.try中有return语句,finally也会执行
21.即便没有catch,finally中的代码也会执行,但finally之后的代码则不会。
22.Exception ex 异常也是对象,封装了异常发生时的一些信息。
23.Exception 类主要属性:Message、StackTrace、InnerException(*)
24.扔出自己的异常,扔:throw,抓住:catch throw new exception
25.建议:通过逻辑判断减少异常发生的可能性!