第三章 异常处理和类 一、异常处理语句 1.什么是异常:在程序运行期间发生的错误或意外(异常是一种错误条件,当代码路径的正常控制流程不符合实际或是不正确时,异常就会发生)。 2.Visu al C#语言的异常处理方法:在程序中加入异常控制代码,提供更为明确的处理结果 3.异常处理语句的使用 (1)格式 1:try -catch 语句 try 语句块中包含可能产生异常的代码,catch 中指定对异常的处理 、 (2)格式 2:try -finally 语句 try 语句块包含可能产生异常的代码 finally 中指定最终都要执行的子语句 与格式 1 比较,程序不提供对异常的处理,只保证 finally 语句块中的代码一定被执行 (3)格式 3:try -catch-finally (常用格式) try 语句块中包含可能产生异常的代码,catch 中指定对异常的处理,finally 中指定最终都要执行的子语句,放在所有 catch 后,只能出现一次 class trycatchstatement { public void test() { try { int b = int.Parse("abc"); } catch (FormatException ex) { Console.WriteLine(ex.Message); } } } class trycatchstatement { public void test() { try { int b = int.Parse("abc"); } finally { Console.WriteLine("执行结束"); } } } class trycatchstatement { public void test() { try { int b = int.Parse("abc"); } catch (FormatException ex) { Console.WriteLine(ex.Message); } (4)throw 语句 throw 语句可以重新引发一个已捕获的异常,还可以引发一个预定义的或自定义的异常,可被外围的try语句接收,throw 引发的异常称为显示引发异常 (5)关于异常的特定程度高低 当try语句中有多个异常抛出时,catch 语句也必须有多个,与异常相对应。则多个catch 语句的顺序对异常的处理有影响。因为程序是按照顺序检查 catch 语句,将先捕获特定程度较高的异常。所谓异常的特定程度,与C#中异常类的层次结构(继承关系)有关。 同时使用多个catch 语句时,如果其中有两个catch 语句所捕获的异常类存在继承关系,那么要保证捕获派生类的catch 语句在前,而捕获基类的catch 语句在后。否则,捕获派生异常类的catch 语句不会起任何作用或者系统报错。 .NET 中异常类直接的派生关系如下图所示 Exception 是所有异常类的父类 SystemException:是 System 命名空间中所有其他异常类的基...