Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 13 Exception Handling: A Deeper Look

Similar presentations


Presentation on theme: "Chapter 13 Exception Handling: A Deeper Look"— Presentation transcript:

1 Chapter 13 Exception Handling: A Deeper Look

2 Things Happen

3 Terminology

4 Exception Keywords

5 Running example namespace UsingExceptions { class Program
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace UsingExceptions { class Program static void Main(string[] args) int x = 10; int y = 5; int result; try result = x / y; Console.WriteLine("The result is: {0}", result); } catch Console.WriteLine("An error occurred! Better check the code!"); finally Console.WriteLine("Just proving that this code always runs."); Console.ReadLine(); }}}

6 Catching Specific Exceptions

7 Hierarchy try { result = x / y;
Console.WriteLine("The result is: {0}", result); } catch (System.DivideByZeroException e) Console.WriteLine("Whoops! You tried to divide by zero!"); Console.WriteLine(e.Message); catch (System.ArithmeticException e)

8 More Specific First try { result = x / y;
Console.WriteLine("The result is: {0}", result); } catch (System.ArithmeticException e) Console.WriteLine("Whoops! You tried to divide by zero!"); Console.WriteLine(e.Message); catch (System.DivideByZeroException e) finally Console.WriteLine("Just proving that this code always runs."); Console.ReadLine();

9 Exceptions are Objects
System.Exception Constructors Properties Hierarchy System.ApplicationException (non fatal exceptions)

10 Custom Exceptions

11 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CustomExceptions { public class MyOwnException : Exception public MyOwnException() : base("Sergey is not welcomed here!") //Exception(string) //this.HelpLink = " } class Program static string GetName() string s = Console.ReadLine(); if (s.Equals("Sergey")) throw new MyOwnException(); return s;

12 static void Main(string[] args)
{ string theName; try theName = GetName(); Console.WriteLine("Hello {0}", theName); } catch (MyOwnException nje) Console.WriteLine(nje.Message); Console.WriteLine("For help, visit: {0}", nje.HelpLink); finally Console.WriteLine("Have a nice day!"); Console.ReadLine();

13 13.2 Example: Divide by Zero without Exception Handling

14 Re-throwing Exceptions
class Program { static void DoSomeMath() int x = 10, y = 0; int result; try result = x / y; Console.WriteLine("Result is {0}", result); } catch Console.WriteLine("Error in DoSomeMath()"); throw new ArithmeticException(); static void Main(string[] args) DoSomeMath(); catch (ArithmeticException e) Console.WriteLine("Hmm, there was an error in there, be careful!"); Console.ReadLine();

15

16 13.3 Example: Handling DivideByZeroExceptions and FormatExceptions

17

18

19

20

21 13.4 .NET Exception Hierarchy

22 13.5 finally Block

23

24

25

26

27

28

29

30

31

32 13.7 Exception Properties

33

34

35

36

37

38 13.8 User-Defined Exception Classes

39

40

41

42

43


Download ppt "Chapter 13 Exception Handling: A Deeper Look"

Similar presentations


Ads by Google