查看 try-catch 挑战的解决方案
以下代码是上一单元挑战的一种可能解决方案:
try
{
Process1();
}
catch
{
Console.WriteLine("An exception has occurred");
}
Console.WriteLine("Exit program");
static void Process1()
{
try
{
WriteMessage();
}
catch
{
Console.WriteLine("Exception caught in Process1");
}
}
static void WriteMessage()
{
double float1 = 3000.0;
double float2 = 0.0;
int number1 = 3000;
int number2 = 0;
Console.WriteLine(float1 / float2);
Console.WriteLine(number1 / number2);
}
在此解决方案中,方法 `Process1
` 已更新为使用 `try-catch
` 模式。 在 try
代码块中调用 WriteMessage
方法,从而使 Process1
能够在顶级语句中的 catch
子句捕获异常之前捕获异常。
运行此应用程序将生成所需的输出:
∞
Exception caught in Process1
Exit program
请注意,由于异常是在 Process1
内部被捕获的,因此顶级语句中的 catch
代码块不会被执行。 当捕获特定异常类型时,捕获调用堆栈中不同级别的异常所带来的好处变得更加明显。 你将在下一个单元中检查异常类型。
如果你成功迎接这一挑战,恭喜! 继续下一个单元。
重要
如果在完成此挑战时遇到问题,也许你应该先查看以前的单元,然后再继续作。