.NET Framework 捕捉异常

示例

在特殊情况下,代码可以并且应该引发异常。例如:

  • 尝试阅读流的末尾

  • 没有访问文件的必要权限

  • 尝试执行无效的操作,例如被零除

  • 从Internet下载文件时发生超时

调用方可以通过“捕获”它们来处理这些异常,并且仅应在以下情况下进行:

  • 它实际上可以解决特殊情况或适当恢复,或者;

  • 它可以为异常提供其他上下文,如果需要重新抛出异常(重新抛出的异常由异常处理程序在调用堆栈中捕获)将很有用。

应该注意的是,如果要在更高层次上处理异常,则选择捕获异常是完全有效的。

捕获异常是通过如下方式将潜在抛出的代码包装在一个try { ... }块中,然后捕获其能够在catch (ExceptionType) { ... }块中处理的异常来完成的:

Console.Write("请输入文件名: ");
string filename = Console.ReadLine();

Stream fileStream;

try
{
    fileStream = File.Open(filename);
}
catch (FileNotFoundException)
{
    Console.WriteLine("File '{0}' could not be found.", filename);
}