檢閱攔截特定例外狀況挑戰的解決方案
下列程式代碼是上一個單元中挑戰的可能解決方案:
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.
此程序代碼只是「一個可能的解決方案」,因為有許多方式可以更新例外狀況處理邏輯。 只要您在挑戰中根據規則取得正確的結果,您就做得很棒!
如果您已成功,恭喜! 繼續進行下一個單元中的知識檢定。
這很重要
如果您無法順利完成此挑戰,您應該在繼續之前先複習上一個單元中的內容。