“异常处理恢复代码”是什么意思?
本文关键字:是什么 意思 代码 异常处理 恢复 | 更新日期: 2023-09-27 18:17:51
我正在研究异常处理应用程序块,我从微软页面上读了一段话:什么时候我应该使用异常处理应用程序块?
原内容:
异常处理应用程序块的限制
异常处理应用程序块是异常的补充处理恢复码;它不是它的替代品。如果异常因为真正不寻常的情况而发生,可能是不可能的一个应用程序可以优雅地恢复并完成它的单元工作已经开始。然而,有时是有可能恢复的。一个例子由于文件被锁定而发生的异常。经济复苏代码可能指示应用程序在等待后重试该文件一段时间
在这种情况下,应该实现异常处理恢复代码在应用程序代码内;它不应该作为处理程序实现由异常处理应用程序块使用。这是因为需要访问局部变量、参数和其他上下文数据。运行的处理程序无法访问此数据异常处理应用程序块
"异常处理恢复代码"是什么意思?
下面的例子也很有用。
异常处理恢复代码将是您的catch
代码块中的内容。它可以记录错误,查找一个友好的消息显示给用户,或者重试一些进程等。
从你的问题中引用的文本:
一个例子是由于文件被锁定而发生的异常。恢复代码可能指示应用程序在等待一段时间后重试文件
参见MSDN:异常和异常处理。
class ExceptionTest
{
static double SafeDivision(double x, double y)
{
if (y == 0)
throw new System.DivideByZeroException();
return x / y;
}
static void Main()
{
// Input for test purposes. Change the values to see
// exception handling behavior.
double a = 98, b = 0;
double result = 0;
try
{
result = SafeDivision(a, b);
Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
}
catch (DivideByZeroException e)
{
Console.WriteLine("Attempted divide by zero.");
}
}
}
说明为什么应该尽快处理异常,而不是像它所说的那样在异常处理应用程序块中处理异常的一个例子,可能是需要访问局部变量的地方。例如,你尝试打开一个文件,但得到一个错误。最好让用户知道无法打开哪个文件。为此,您需要访问打开文件的方法中的变量。如果你想重新打开文件,你也必须这样做。