前言
异常处理相当于大楼失火时,烟雾感应器捕获到高于正常密度的烟雾,将自动喷水进行灭火的操作。
C#程序中,使用异常处理语句处理异常。主要的异常处理语句有throw语句,try..catch语句和try..catch…finally语句。
throw语句
throw语句用于主动引发一个异常,使用throw语句可以在特定的情形下,自动抛出异常。
基本格式:
throw ExObject
try…catch语句
try…catch语句在try后面的大括号中防止可能发生异常情况的程序代码,对这些程序代码进行监控;
在catch后面的大括号中放处理错误的程序代码,处理程序发生的异常。
基本格式
try
{
被监控的代码
}
catch(异常类名 异常变量名)
{
异常处理
}
举例
static void Main(string[] args)
{
try
{
object obj=null;//声明一个object变量,初始值为null
int N=(int)obj;//将object类型强制转换成int类型
}
catch(Exception ex)//捕获异常
{
Console.WriteLine("捕获异常:"+ex);//输出异常
}
console.ReadLine();
}
try…catch…finally语句
将finally语句与try…catch语句结合,形成try…catch…finally语句。finally语句以区块的方式存在,程序执行完毕,最后跳到finally语句区块,执行代码。
- 无论是否产生异常,最后都会中finally语句块中的程序代码。
- finally区块中通常是一些在任何情形下都必须执行的代码。
基本格式
try
{
被监控的代码
}
catch(异常类名 异常变量名)
{
异常处理
}
finally
{
程序代码
}
举例
static void Main(string[] args)
{
string str="小明";//声明一个string类型变量str
object obj=str;//声明一个string类型变量obj
try
{
int i=(int)obj;//将obj强制转换成int类型
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);//输出异常信息
}
finally
{
Console.WriteLine("程序执行完毕");//输出“程序执行完毕...”
}
Console.ReadLine();
}
运行结果
指定的转换无效
程序执行完毕...