调试和错误处理
一、 Debug,Trace,Console的区别
相同点:三者均有文本信息打印功能
不同点:
1.职能上的不同:
Debug和Trace均只是调试手段,是面向开发人员,并不参与应用程序本身逻辑,不会对用户展示,其输出对象是VS的“输出”窗口,而 console是要向用户显示的一些文本信息,是面向用户的,控制台应用程序其输出对象是控制台,winform程序其输出对象是VS的“输出”窗口。
2.在debug和Release模式下的工作状态不同
Debug只在debug模式下有输出,在Release模式下无输出;Trace在两种模式下都有输出,console在两种模块下都有输出,控制台应用程序其输出对象是控制台,winform程序其输出对象是VS的“输出”窗口。
3.编译的不同
Debug在Release模式下不能被编译,这意味着,发布版本的程序会比调试版本的程序要小,所以在Release模式下,Debug无论是对开发者还是用户都无用。想要在Release模式下获得执行的调试结果,可以通过Trace或者console的方式获取,当然,这只能是在IDE的环境下。
建议:我们通常希望仅仅在调试版本输出调试信息,所以建议使用Debug而不是Trace。
二、进入中断模式的三种方式
1.设置断点
2.抛出异常(try-catch-finaly),执行顺序为A-E
A:try 块在发生异常的地方中断程序的执行;
B:如果有catch 块,就检查该块是否匹配已抛出的异常类型。如果没有catch 块,就执行finally
块(如果没有catch 块,就一定要有finally 块);
C:如果有catch 块,但它与已发生的异常类型不匹配,就检查是否有其他catch 块。
D:如果有catch 块匹配已发生的异常类型,就执行它包含的代码,再执行finally 块(如果有)。
E:如果catch 块都不匹配已发生的异常类型,就执行finally 块(如果有),注意,在IDE中这里在调试模式下,会触发异常中断,
3.断言