程序调试
1.使用console.WriteLine或者MessageBox.Show调试导致代码混乱
可以使用右键,将代码运行到光标处
F11逐语句
F10逐过程,整个函数
shift+F10 执行跳出,如果位于函数调用的内部,并且想返回到调用函数时,应使用跳出,跳出会将一直执行代码,直到函数返回,然后在调用函数中的返回点处中断。
异常处理
发生异常:大楼失火 捕获异常:烟雾感应器 处理异常:自动喷水进行灭火
在.net库中,提供了针对各种异常情形所设计的的异常类,避免程序执行时出现中断程序情况
各种公共异常类都由System.Exception的直接或间接的子类
异常处理语句
在C#中,这3个异常处理语句
1.try...catch
2.try...catch...finally
3.throw
try...catch
在try后面放置可能发生异常情况的代码,对代码进行监控
在catch(异常类名,异常变量名)放置处理错误的程序代码,可以不写异常变量名,就没有错误信息提示字符串,需要错误信息,就使用异常变量名.message
try...catch...finally
无论程序中有无异常,finally代码块中的代码都会被执行,可以使用执行清理代码,如果分配了有限的资源,,则应将释放这些资源的代码放到finally中
throw
用于主动引发一个异常,使用thorw语句可以在特定的情形下,自行抛出异常,throw语句的基本格式如下:throw ExObject(new +异常类) 其中ExObject 是所要抛出的异常“对象” 所以需要new 异常类,这个异常对象System.Exception的直接或间接的子类
通常throw语句和try...catch及try...catch...finally一起使用,当引发异常时,程序查找处理此异常的catch语句,也可以在try中使用throw语句重新引发已捕获的异常
使用多个catch时,需要注意catch的顺序是先子类后父类,EXception 要在最后面 ,不然会报错
异常使用规则: 1.不要过度使用异常,可能会影响程序执行的效率
2.不要使用过于庞大的try...catch代码块,否则会增加分析异常产生的原因
3.避免使用catch(Exception e) 如果所有异常都采用相同的处理方式,导致无法对不同的异常进行分类处理