C#基础学习--异常

目录

什么是异常

try语句

异常类

catch子句

 catch子句段

finally块

为异常寻找处理程序

更进一步搜索

一般法则

扫描二维码关注公众号,回复: 15076827 查看本文章

抛出异常

不带异常对象的抛出


什么是异常

异常是程序运行时错误,它违反了系统约束或应用程序约束,或出现了在正常操作时未预料的情况。

如果程序没有提供处理异常的代码,系统会挂起这个程序

try语句

异常类

异常对象含有只读属性,带有导致该异常的信息

catch子句

一般catch子句能接受任何异常,但不能确定引发异常的类型。这只允许对任何可能发生的异常的普通处理和清理

特定catch子句形式把一个异常类的名称作为参数。它匹配该指定类或派生自它的异常类的异常

带对象的特定catch子句提供关于异常的最多信息,它匹配该指定类的异常,或派生自它的异常类的异常,它还给出一个异常实例(称为异常变量),是一个对CLR创建的异常对象的引用。可以在catch子句块内部访问异常变量的属性,以获取关于引起的异常的详细信息

 catch子句段

catch子句段可以包含多个catch子句

当异常发生时,系统按顺序搜索catch子句的列表,第一个匹配该异常对象类型的catch子句被执行。   catch子句的排序有两个重要的规则:

finally块

如果程序的控制流进入了一个带finally块的try语句,那么finally始终会被执行

 即使try块中有return语句,finally块也会执行

为异常寻找处理程序

当程序产生一个异常时,系统查看该程序是否为它提供了一个处理代码

更进一步搜索

如果异常在一个没有被try语句保护的代码段中产生,或如果try语句没有匹配的异常处理程序,系统将不得不更进一步寻找匹配的处理代码。为此它会按顺序搜索调用栈,一看看是否存在带匹配的处理程序的封装try块

一般法则

抛出异常

可以使用throw语句使代码显式的引发一个异常,throw 语句的语法如下:

  throw  ExceptionObject;

不带异常对象的抛出

猜你喜欢

转载自blog.csdn.net/zaizai1007/article/details/130301559