标签:c#
调试和错误处理
· 错误类型:
在编译期间和运行期间,致命错误(语法错误)都会使应用程序完全失败,语义错误或逻辑错误比较微妙,可能会使应用程序执行不正确,或者以未预料的方式执行;
输出调试信息:
我们在编写代码,把有帮助的信息输出到output窗口中,以帮助在IDE中进行调试。为此需要使用Debug和Trace系列函数,其中Debug函数在发布版本中会被忽略。对应投入生产的应用程序,应把调试输出写入日志文件,在VS中,还可以使用跟踪点输出调试信息;
中断模式:
可以通过断点,判断语句,或者在发生未处理的异常时,手工进行中断模式(暂停应用程序的状态)。可以在代码的任意位置添加断点,在VS中,还可以把断点配置为仅在特定条件下中断执行,在中断模式下,可以检查变量的内容(使用各种调试信息窗口),每次执行一行代码,以帮助确定哪里出现了错误;
异常:
异常时运行期间发生的错误,可以通过编程方式捕获和处理这种错误,以防止应用程序终止。跳跃函数或处理变量时,可能会发生许多不同类型的异常,还可以使用throw关键字生成异常;
异常处理:
代码中未处理的异常会使应用程序终止。使用try,catch和finally代码块处理异常。Try 块标记了一个启用异常处理的代码段,catch块包含的代码仅在异常发生时执行,它可以匹配特定类型的异常,还可以保护多个catch 块,Finally 块指定异常处理完毕后执行的代码,如果没有发生异常,Finally 块就指定在try块执行完毕后执行的代码,只能包含一个Finally块,如果包含了catch 块,Finally块是可选的。
1.两种方式执行应用程序:
· Debug
F5或按绿色play 按钮
· 非debug
Debug |Start without debugging 或ctrl + F5
2.调试:如何使用调试技巧确定未按预期方式执行的那些代码,并修改它们。
3.应用程序状态:
1.非中断模式(运行期间或正常执行)
Using system.diagnostics;
输出调试信息两种方式:诊断输出和跟踪点
诊断输出:debug.writeline(); trace.writeline() (不常用)
诊断输出:从应用程序中输出调试结果时使用这种方法,尤其是在要输出的字符串比较复杂,涉及几个变量或许多信息的情况下,使用该方法比较好。如果要在发布模式下获得执行应用程序的调试结果,trace命令是唯一选择;
Debug模式下,记述在循环中计算出结果所采取的步骤;
Release 模式下,仅能看到计算的最终结果,因为没有调用debug.writeline()函数;
跟踪点:是把信息输出到output窗口的另一种方法,是VS的一个功能。其作用和Debug.WriteLine()相同。只输出调试信息且不修改代码;(常用)
2.中断模式调试
断点:
4.监视变量的内容:
5.单步执行代码
6.Immediate 和command 窗口
7.Call stack 窗口
8.错误处理,处理异常
Try … catch.. finally
9.列出和配置异常
Debug –exceptions—common language runtime exceptions.可看到system 名称空间中的异常。
10.异常处理的注意事项
为比较特殊的异常提供catch 块,catch块顺序错误,应用程序就会编译失败。
若使用throw,该异常不会有当前的try.. catch.. finally 块处理
本文出自 “Ricky's Blog” 博客,请务必保留此出处http://57388.blog.51cto.com/47388/1651512
标签:c#
原文地址:http://57388.blog.51cto.com/47388/1651512