Practicing Error Handling
The try-catch
syntax has an additional syntax which allows us to catch specific types of errors and deal with them separately:
index.cs
1234567891011121314151617try { // code } catch (ExceptionType errorVarName) { // code } catch (ExceptionType errorVarName) { // code } ... finally { // code }
The type Exception
we used in the previous chapter simply catches all kinds of errors however there are some subtypes of Exception
which catch more specific kinds of errors. Following are some common exception types:
DivideByZeroException
: There's a division by zero;FileNotFoundException
: The file we're accessing doesn't exist;KeyNotFoundException
: The dictionary key doesn't exist;IndexOutOfRangeException
: The specified index of an array or list is invalid.
The term errorVarName
is a variable which stores the Exception object, and has information like the error message which can be accessed through errorVarName.Message
. We can omit that in case we're not using it:
index.cs
12345678910111213try { // code } catch (ExceptionType) { // code } ... finally { // code }
Here's an example of using this kind of try-catch block:
index.cs
123456789101112131415161718192021222324252627using System; class Program { static void Main(string[] args) { int[] myArray = { 0, 2, 4, 6, 8, 10 }; int i = 0; while (true) { try { Console.Write(myArray[i] / i + " "); i++; } catch(DivideByZeroException) { i++; } catch(IndexOutOfRangeException) { break; } } } }
Now using these concepts. Fill in the blanks with relevant exception types in the following code to complete the challenge.
index.cs
1234567891011121314151617181920212223242526272829303132333435using System; using System.Collections.Generic; class Program { static void Main(string[] args) { int[] numbers = { 1, 2, 5, 7, 9 }; var numberNames = new Dictionary<int, string>(); numberNames.Add(1, "One"); numberNames.Add(2, "Two"); numberNames.Add(5, "Five"); numberNames.Add(9, "Nine"); int i = 0; while (true) { try { int key = numbers[i]; Console.WriteLine($"{key} is {numberNames[key]}"); i++; } catch (___) { break; } catch (___) { numberNames.Add(7, "Seven"); } } } }
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 2.04
Practicing Error Handling
Veeg om het menu te tonen
The try-catch
syntax has an additional syntax which allows us to catch specific types of errors and deal with them separately:
index.cs
1234567891011121314151617try { // code } catch (ExceptionType errorVarName) { // code } catch (ExceptionType errorVarName) { // code } ... finally { // code }
The type Exception
we used in the previous chapter simply catches all kinds of errors however there are some subtypes of Exception
which catch more specific kinds of errors. Following are some common exception types:
DivideByZeroException
: There's a division by zero;FileNotFoundException
: The file we're accessing doesn't exist;KeyNotFoundException
: The dictionary key doesn't exist;IndexOutOfRangeException
: The specified index of an array or list is invalid.
The term errorVarName
is a variable which stores the Exception object, and has information like the error message which can be accessed through errorVarName.Message
. We can omit that in case we're not using it:
index.cs
12345678910111213try { // code } catch (ExceptionType) { // code } ... finally { // code }
Here's an example of using this kind of try-catch block:
index.cs
123456789101112131415161718192021222324252627using System; class Program { static void Main(string[] args) { int[] myArray = { 0, 2, 4, 6, 8, 10 }; int i = 0; while (true) { try { Console.Write(myArray[i] / i + " "); i++; } catch(DivideByZeroException) { i++; } catch(IndexOutOfRangeException) { break; } } } }
Now using these concepts. Fill in the blanks with relevant exception types in the following code to complete the challenge.
index.cs
1234567891011121314151617181920212223242526272829303132333435using System; using System.Collections.Generic; class Program { static void Main(string[] args) { int[] numbers = { 1, 2, 5, 7, 9 }; var numberNames = new Dictionary<int, string>(); numberNames.Add(1, "One"); numberNames.Add(2, "Two"); numberNames.Add(5, "Five"); numberNames.Add(9, "Nine"); int i = 0; while (true) { try { int key = numbers[i]; Console.WriteLine($"{key} is {numberNames[key]}"); i++; } catch (___) { break; } catch (___) { numberNames.Add(7, "Seven"); } } } }
Bedankt voor je feedback!