程序出现异常最直接的办法就是让程序将异常抛出,这样我们就能很快的知道程序出了什么问题,如何去改
异常的抛出,语法是:
throw new Exception(“消息”);
如何捕获异常:
try
{
//容易出现异常的代码
}
catch(Exception ex)
{
//通过ex捕获异常信息,并对其进行处理
//将异常信息写入日志,用来后期查看
//此处可以使用ex.Message来获取异常信息
}
程序的自身的方法中要是没有处理发生的异常,那么就会向上抛出,直到抛出应用程序到操作系统。
通过上图将会发现,ReadInt类中发生的异常,因为自身类中没有处理异常的代码,然后将异常向上抛出,
这样就导致了Main方法中 ReadInt num=new ReadInt(-2);
这句代码出现异常,所以执行catch中的代码,此时ex=new Exception(“有异常”);
而ex.Message中就存储这异常信息
然而,有的时候调用关系嵌套很多层,这样异常抛出的道理是相同的
ReadInt1中发生异常,那么就会向上抛出,异常抛到ReadInt中,但是ReadInt中也没有处理异常的代码,那么异常就将会
继续向上抛出,当发现有try—catch则将异常直接赋值给了ex变量,并执行catch代码
既然异常是一直向上抛出,那么当调用的层次较多的时候,出现异常也将很难找到出现异常的代码在什么地方
Visual Studio这个开发工具就给我们记录好了异常发生的路径,具体查看步骤
1)在catch代码段的结束的大括号上面设置断点
2)执行到断点的时候,将光标放到ex上
3)右击选择快速监视,然后在弹出的对话框中选择 ex 的 StackTrace 属性,点击后面的放大镜就能看到下面的窗口异常处理这个是个难点,以上介绍都是皮毛,随着深入的学习,肯定会了解的越来越深刻的