C#中的异常是程序执行期间出现的意外情况的一种响应,比如文件和流章节中文件不存在而导致的异常。这时候,我们就不希望程序直接崩溃,而是通过一些处理手段将这些错误拦截下来,并以一个比较友好的方式来告知使用者是哪里出错了。C#中提供了四个关键字:try、catch、finally和throw建立了一套异常机制:
语法结构如下:
try{ // 引起异常的语句}
catch( ExceptionName e1 )
{
// 错误处理代码
}
catch( ExceptionName e2 )
{
// 错误处理代码
}
finally{
// 要执行的语句
}
异常类:C#中根据不同的异常类型提供了对应的异常类,比如最常见的空引用异常。
异常处理我们使用SteamWriter的案例来实现异常处理的实例:
void SteamWriterTest()
{
try
{
StreamWriter sw = new StreamWriter(@"D:TestTest.txt", true);
sw.WriteLine("Another File Operation Method");
sw.Close();
}
catch (Exception ex)
{
throw new IOException("IO异常" + ex);
} }
调试我们在写程序的时候,经常会碰到这种情景,就是数据“感觉”是对的,但是视图层(表现)是错的。这时候我们就要考虑是否需要进行调试。当然如果是比较明显或者比较简单的错误,一般写程序的人是能知道是哪里出错了,但如果这个数据错误藏的很深,或者是多人协作的复杂项目,这时候通过调试就能跟踪数据错误的源头。我们新建一个控制台项目:
然后打开Program.cs并写入我们上面SteamWriter的异常捕获实例,不过这次我们不想被系统捕获,我们想自己捕获:
static void SteamWriterTest() { StreamWriter sw = new StreamWriter(@"D:TestTest.txt", true); sw.WriteLine("Another File Operation Method"); sw.Close(); }
然后在Main方法中调用 static void Main(string[] args) { SteamWriterTest(); }
然后我们点击行号的左变区域,有一块是可以进行调试标注的,我们点选我们要标注的位置:
点选完,我们只需要点击菜单栏上的调试>开始调试,或者按F5,标注调试的地方将会被激活:
同时工具栏区域的调试工具也会被激活:
其中,F11是逐句往下调试,F10是按过程往下调试。我们按F11,往下走:
已经弹出了错误,提示错误,并指出了错误的原因。点击查看详细信息,就可以打开快速监视器,就可以查看更加详细的错误信息:
我们直接就知道了,这个路径是不存在的,我们只需要再D盘创建Test这个文件路径,再次执行调试,就不会出现这个错误了。调试时,编辑器是不允许代码修改的,所以,如果定位到问题所在,就需要停止调试shift +f5或者直接点击工具栏的停止按钮。当然,以上只是讲解一个调试的流程,让大家可以快速的了解VS的调试,这个也是程序开发中很基础又很重要的一个能力。