《C#入门经典》学习笔记(调试和错误处理)
来源:互联网 发布:淘宝客佣金查看工具 编辑:程序博客网 时间:2024/04/30 00:36
调试和错误处理
Visual Studio 中的调试
非中断(正常)模式下的调试
输出调式信息
在运行期间把文本写入输出窗口
“显示以下输出”选择“调试”就可看到调试信息
命令:
Debug.WriteLine();
Trace.WriteLine();
其中第一个参数是字符串或对象的ToString方法值
第二个可选参数是自定义类别名称,可用来说明是哪里的调试信息
使用方法几乎完全相同
区别:
第一条命令仅在调试模式下运行
第二条命令还可用于发布程序
如果要给客户提供调试信息就使用Trace,否则建议选择Debug
使用:
1 添加命名空间
using System.Diagnostics;
2 添加命令
Debug.WriteLine("变量val的值:"+val);
3 在调试模式下执行程序
其他调试命令
Debug.Write();
Trace.Write();
跟前两个语法相同,但没有添加换行符
Debug.WriteIf();
Trace.WriteIf();
Debug.WriteLineIf();
Trace.WriteLineIf();
在非IF命令参数的基础上,在最前面添加一个必选的bool参数
如果bool参数为true,则输出调试信息
中断模式下的调试
1 进入中断模式
使用工具栏上的调试菜单
按钮的作用分别是:
开始执行应用程序
暂停应用程序,进入中断模式
停止程序执行,退出应用程序
重新启动应用程序
断点
单击该代码行左边的灰色区域或则右击代码行选择“插入断点”来设置断点
选择菜单“调试”,“窗口”,“断点”可以打开显示窗口
在断点窗口或右击断点标记可以编辑设置断点
可以设置为:
遇到断点,立即进入中断模式
遇到断点,如果布尔表达式是true,就进入断点
遇到一定次数断点后,进入中断模式
如果指定变量值发生变化后,进入中断模式
其他中断方法
生成一个判定语句时中断
判定函数:
Debug.Assert();
Trace.Assert();
Debug也是只能用于调试模式
参数:
第一个是布尔值,如果为false会触发判定语句
第二,三个参数用来设置输出调试信息
如果触发了判定语句,就会看到一个弹出窗口,显示调试信息
2 监视变量的内容
在中断模式下,用指标指向源代码中的变量名
这时会出现一个工具提示,显示变量信息
在局部变量窗口查看变量内容
这里将显示更加详细的信息内容
3 单步执行代码
进入调试模式后,在调试工具条可以选择:
执行并移动到下一个要执行的语句上
同上,但不能竟如嵌套的代码块
执行到代码块末尾,执行完后重新进入中断模式
在单步执行代码时可以更好地观察错误发生的过程
4 Immediate 命令
5 Call Stack 窗口
该窗口描述了程序是如何执行到当前位置的
错误处理
异常
处理异常:
1 try...catch...finally
基本结构;
try
{
...
}
catch(<exceptionType> e)
{
...
}
finally
{
...
}
如果有一个或多个catch块,finally块就是可选的,否则是必须的
用法:
try:包含产生异常的代码
catch:包含在产生异常时要执行的代码
finally:包含总是会执行的代码
2 列表和配置异常
选择菜单“调试”,“异常”,打开异常窗口
该窗口可以检查和编辑可用的异常
3 异常处理的注意事项
可以用throw在catch块中产生异常
- 《C#入门经典》学习笔记(调试和错误处理)
- C#入门经典学习7-调试和错误处理
- C#入门经典 chapter7 -C#的调试和错误处理
- 《C#入门经典》学习笔记(变量和表达式)
- 《C#入门经典》学习笔记(集合、比较和转换)
- 《C#入门经典》学习笔记(集合、比较和转换)
- python学习笔记(1)-错误处理、调试和测试
- C#调试和错误处理(1)
- 《C#入门经典》学习笔记(变量)
- 《C#入门经典》学习笔记(函数)
- 《C#入门经典》学习笔记(泛型)
- C#入门经典 学习笔记(一)
- C#入门经典 学习笔记(二)
- C#入门经典 学习笔记(三)
- c#经典入门--学习笔记
- c#经典入门--学习笔记
- C++入门经典 笔记 (第二十四章)处理异常和错误
- c#经典入门学习笔记-封箱和拆箱
- 《C#入门经典》学习笔记(流程控制)
- 一道面试题目5
- 《C#入门经典》学习笔记(变量)
- 2006高校BBS上的苦涩语录
- 《C#入门经典》学习笔记(函数)
- 《C#入门经典》学习笔记(调试和错误处理)
- C#.net定时器
- 如何实现Multi-Key Multi-Map
- 《C#入门经典》学习笔记(面向对象编程)
- Ajax漫步(二)XMLHttpRequest 简介
- 《C#入门经典》学习笔记(定义类)
- 《C#入门经典》学习笔记(定义类成员)
- 一个C++程序例子——指向函数的指针、含有可变形参的函数(备查)
- 探索 Linux 内存模型