vs调试按钮为灰色的_2.12异常与调试

C#中的异常是程序执行期间出现的意外情况的一种响应,比如文件和流章节中文件不存在而导致的异常。这时候,我们就不希望程序直接崩溃,而是通过一些处理手段将这些错误拦截下来,并以一个比较友好的方式来告知使用者是哪里出错了。C#中提供了四个关键字:try、catch、finally和throw建立了一套异常机制:

92c5833de44958aca46329d09b0ee0c9.png

语法结构如下:

try{ // 引起异常的语句}

catch( ExceptionName e1 )

{

// 错误处理代码

}

catch( ExceptionName e2 )

{

// 错误处理代码

}

finally{

// 要执行的语句

}
异常类:C#中根据不同的异常类型提供了对应的异常类,比如最常见的空引用异常。

27b59657162c691110adc489b8f694b9.png

异常处理我们使用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);

} }

调试我们在写程序的时候,经常会碰到这种情景,就是数据“感觉”是对的,但是视图层(表现)是错的。这时候我们就要考虑是否需要进行调试。当然如果是比较明显或者比较简单的错误,一般写程序的人是能知道是哪里出错了,但如果这个数据错误藏的很深,或者是多人协作的复杂项目,这时候通过调试就能跟踪数据错误的源头。我们新建一个控制台项目:

841aca782be68431cd707cb7fac90e73.png

然后打开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(); }

然后我们点击行号的左变区域,有一块是可以进行调试标注的,我们点选我们要标注的位置:

64981158362521cba44cb0e54165be9e.png

点选完,我们只需要点击菜单栏上的调试>开始调试,或者按F5,标注调试的地方将会被激活:

e15402f8745fb8b4f57c05b7ee230d94.png

同时工具栏区域的调试工具也会被激活:

eacbdf0b1411c08411ca2c2354e5609e.png

其中,F11是逐句往下调试,F10是按过程往下调试。我们按F11,往下走:

7aa7a455fa261e8428d014ff22c8a883.png

已经弹出了错误,提示错误,并指出了错误的原因。点击查看详细信息,就可以打开快速监视器,就可以查看更加详细的错误信息:

25ecf82e6a321448d5b2a4892e0de2ed.png

我们直接就知道了,这个路径是不存在的,我们只需要再D盘创建Test这个文件路径,再次执行调试,就不会出现这个错误了。调试时,编辑器是不允许代码修改的,所以,如果定位到问题所在,就需要停止调试shift +f5或者直接点击工具栏的停止按钮。当然,以上只是讲解一个调试的流程,让大家可以快速的了解VS的调试,这个也是程序开发中很基础又很重要的一个能力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值