Gennemse løsningen for udfordringen med fangstspecifikke undtagelser
Følgende kode er en mulig løsning på udfordringen fra det forrige undermodul:
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.");
Når du kører dette program, udskrives de påkrævede meddelelser til konsollen som output:
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.
Denne kode er blot "én mulig løsning", fordi der er mange måder at opdatere logikken for undtagelseshåndtering på. Så længe du fik de rigtige resultater i henhold til reglerne i udfordringen, så du gjorde stor!
Hvis du lykkedes, tillykke! Fortsæt til videnstjekket i det næste undermodul.
Vigtig
Hvis du havde problemer med at fuldføre denne udfordring, skulle du måske gennemse de tidligere enheder, før du fortsætter.