如何:使用 Try/Catch 块捕捉异常
更新:2007 年 11 月
将可能引发异常的代码节放在 Try 块中,而将处理异常的代码放在 Catch 块中。Catch 块是一系列以关键字 catch 开头的语句,语句后跟异常类型和要执行的操作。
说明: |
---|
几乎任何代码行都可能会导致异常,尤其是公共语言运行库本身引发的异常,如 OutOfMemoryException 和 StackOverflowException。大多数应用程序不必处理这些异常,但在编写由其他人使用的库时应知道这种可能性。有关何时在 Try 块中设置代码的建议,请参见处理异常的最佳做法。 |
下面的代码示例使用 Try/Catch 块捕捉可能的异常。Main 方法包含带有 StreamReader 语句的 Try 块,该语句打开名为 data.txt 的数据文件并从该文件写入字符串。Try 块后面是 Catch 块,该块捕捉 Try 块产生的任何异常。
示例
Option Explicit
Option Strict
Imports System
Imports System.IO
Imports System.Security.Permissions
<assembly: FileIOPermissionAttribute(SecurityAction.RequestMinimum, All := "c:\data.txt")>
Public Class ProcessFile
Public Shared Sub Main()
Try
Dim sr As StreamReader = File.OpenText("data.txt")
Console.WriteLine("The first line of this file is {0}", sr.ReadLine())
Catch e As Exception
Console.WriteLine("An error occurred: '{0}'", e)
End Try
End Sub
End Class
using System;
using System.IO;
using System.Security.Permissions;
// Security permission request.
[assembly:FileIOPermissionAttribute(SecurityAction.RequestMinimum, All = @"c:\data.txt")]
public class ProcessFile {
public static void Main() {
try {
StreamReader sr = File.OpenText("data.txt");
Console.WriteLine("The first line of this file is {0}", sr.ReadLine());
}
catch(Exception e) {
Console.WriteLine("An error occurred: '{0}'", e);
}
}
}
此示例阐释捕捉任何异常的基本 Catch 语句。一般而言,好的编程做法是捕捉特定类型的异常而不是使用基本 Catch 语句。有关捕捉特定异常的更多信息,请参见在 Catch 块中使用特定异常。