为了捕捉程序中的异常,可能会出错的代码要放到一个 try 块中(try是C#关键字)。代码运行时它会尝试执行 try 块内的所有语句。如果没有语句产生异常,这些语句将一个接一个执行下去,直到运行结束。如果一旦出现异常,则跳出 try 块,去执行 catch 块中的内容(可以有多个 catch 同时存在)。
在 try 块后紧接着写一个或多个 catch 处理程序(catch 也是 C# 关键字),用它们处理任何发生的错误。每个 catch 处理程序都负责捕捉并处理一种特定类型的异常,你可以在一个 try 块后面写多个 catch 处理程序。
当一个异常抛出时,它会改变程序的执行流程。因此不能保证一个语句结束后,它后面的语句一定会执行,在 C# 中这个问题可以用 finally 解决。为了确保一个语句总是能执行(不管是否抛出异常),需要将该语句放到一个 finally 块中,finally 要么紧接在 try 块之后,要么紧接在 try 块之后的最后一个 catch 处理程序之后。只要程序进入与一个 finally 块关联的 try 块,则 finally 块始终都会运行。
语法:
try
{
//可能会报异常的代码
}
catch(异常类 变量名)
{
//如果try中代码出现异常,则跳进catch中执行
}
可以有多个catch...
finally
{
//不管是否抛出异常,都会执行finally中的代码
}
一般在try中获取并使用资源,在catch中处理异常情况,并在finally中释放资源。
代码示例:
Console.WriteLine("请输入一个数字,并按回车键确定:"); try { Console.WriteLine("你输入了:"+ double.Parse(Console.ReadLine())); } catch(Exception ex) { Console.WriteLine("异常信息:" + ex.Message); Console.WriteLine("熊孩子昂,叫你输入数字咋不听话啊,你看报异常了可咋整啊?你这孩子彪啊"); } finally { Console.WriteLine("嘤嘤嘤!无论是否出现异常,我都会被执行!"); } Console.ReadKey();
文章评论