查看捕获特定异常挑战的解决方案
以下代码是上一单元挑战的一种可能解决方案:
checked
{
try
{
int num1 = int.MaxValue;
int num2 = int.MaxValue;
int result = num1 + num2;
Console.WriteLine("Result: " + result);
}
catch (OverflowException ex)
{
Console.WriteLine("Error: The number is too large to be represented as an integer. " + ex.Message);
}
}
try
{
string? str = null;
int length = str.Length;
Console.WriteLine("String Length: " + length);
}
catch (NullReferenceException ex)
{
Console.WriteLine("Error: The reference is null. " + ex.Message);
}
try
{
int[] numbers = new int[5];
numbers[5] = 10;
Console.WriteLine("Number at index 5: " + numbers[5]);
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine("Error: Index out of range. " + ex.Message);
}
try
{
int num3 = 10;
int num4 = 0;
int result2 = num3 / num4;
Console.WriteLine("Result: " + result2);
}
catch (DivideByZeroException ex)
{
Console.WriteLine("Error: Cannot divide by zero. " + ex.Message);
}
Console.WriteLine("Exiting program.");
运行此应用程序时,它会将所需的消息打印到控制台作为输出:
Error: The number is too large to be represented as an integer. Arithmetic operation resulted in an overflow.
Error: The reference is null. Object reference not set to an instance of an object.
Error: Index out of range. Index was outside the bounds of the array.
Error: Cannot divide by zero. Attempted to divide by zero.
Exiting program.
此代码只是“一种可能的解决方案”,因为有许多方法来更新异常处理逻辑。 只要你根据挑战中的规则获得正确的结果,那么你就做得很棒!
如果成功了,恭喜你! 继续进行下一个单元中的知识检查。
重要
如果在完成此项挑战时遇到问题,可能需要先回顾前面的几个单元,然后再继续。