将可能引发异常的代码段放在 Try 块中,而将处理异常的代码放在 Catch 块中。Catch 语句的顺序很重要。发生异常时,异常沿堆栈向上传递,每个 Catch 块都有机会处理它。通过将异常类型与 Catch 块中指定的异常名称相匹配,可确定处理异常的 Catch 块。例如,以下 Catch 块将捕获简单对象访问协议 (SOAP) 异常:
catch (SoapException e){Console.WriteLine("SOAP Exception Error Code: {0}",
e.SubCode.Code.Name);
Console.WriteLine("SOAP Exception Message is: {0}",
e.Message);}Catch e As SoapException
Console.WriteLine("SOAP Exception Error Code: {0}", e.SubCode.Code.Name)
Console.WriteLine("SOAP Exception Message is: {0}", e.Message)End Try如果不存在特定类型的 Catch 块,则由可能存在的常规 Catch 块来捕捉异常。例如,您可以通过添加以下代码来捕获一般异常:
catch (Exception e){Console.WriteLine("Exception Message: {0}", e.Message);}Catch e As Exception
Console.WriteLine("Exception Message: {0}", e.Message)End Try将针对特定类型异常的 Catch 块放在一般异常之前。
公共语言运行库将捕捉 Catch 块未捕捉的异常。根据运行库的配置,可能会显示一个调试对话框,或者停止执行程序并显示一个包含异常信息的对话框。