当前位置: 代码迷 >> 综合 >> 【C#】面向对象(9)——异常与异常处理
  详细解决方案

【C#】面向对象(9)——异常与异常处理

热度:96   发布时间:2023-10-01 20:55:42.0

1、传统的错误表示方式:错误码。举例。需要知道不同错误码的含义,如果不处理错误码,则程序可能陷入不可以预置的错误。陈摄影师以为文件已经被删除造成的麻烦。

2、错误码的缺点:不处理则很难发现,每次处理则很麻烦;难以看出错误的原因;容易使得程序进入不确定状态。

3、try catch。Exception ex 异常也是对象

4、Exception 类主要属性:Message、StackTrace(堆栈)。

5、发生异常后程序默认就退出了,try代码块中的后续代码不会被执行。catch以后的代码则会继续执行。

6、不要吃掉异常,一般情况下不需要处理异常。 InnerException

7、扔出自己的异常,扔:throw,抓住:catch

8、VS中调试出现异常的时候如果想终止程序不要关界面,而是点击终止按钮。

9、try...finally

10、try的括号中的代码如果出现异常,则抛出异常的语句向下到try结束的代码,都不会被执行,但是除了try以外的代码还是会执行。

try
{
}
Catch(Exception  ex)  //ex是一个变量,随便命名,不跟已有的变量重名就行,不一定非得要ex,ex只是习惯命名而已。
{Console.WriteLine(“删除失败,错误{0},堆栈{1}”,ex.Message,ex.StackTrace);// ex.后面有许多可选,会自动弹出来。选Massage输出错误信息;选StackTrace输出错误的堆栈,即位置;选其他会输出什么,可以自己去研究。MessageBox.Show(ex.Message);  //也是输入信息。
}
Console.writeLine(“你好,world”);
Finally  //无论成功与否,都会执行finally
{
}

11、在变量上右键à快速监视。跟上面的ex变量一样有很多,Message和StackTrace是常用。所有的异常信息对象的类都是直接或间接从Exception类继承。

12、三种格式:

  • (1)try  catch  finally
  • (2)try  catch
  • (3)try  finally

在(2)中,如果发生异常,try后的代码不会被执行,但是finally会执行,这就是在try后写代码和在finally中写代码的区别。

13、try  catch  finally是系统怕抛出异常;throw  new  Exception(“”);是咱们抛出异常。

throw  new  Exception(“序号错误”);  //抛出异常。自己也可以抛出异常,这里抛出的异常对象可以被catch抓住。