1 / 43

Chapter 13 Exception Handling: A Deeper Look

Chapter 13 Exception Handling: A Deeper Look. Things Happen. Terminology. Exception Keywords. Running example. using System; using System.Collections.Generic ; using System.Linq ; using System.Text ; namespace UsingExceptions { class Program {

Download Presentation

Chapter 13 Exception Handling: A Deeper Look

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 13Exception Handling: A Deeper Look

  2. Things Happen

  3. Terminology

  4. Exception Keywords

  5. Running example using System; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; namespaceUsingExceptions { classProgram { staticvoid 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) { Console.WriteLine("Whoops! You tried to divide by zero!"); Console.WriteLine(e.Message); }

  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) { Console.WriteLine("Whoops! You tried to divide by zero!"); Console.WriteLine(e.Message); } finally { Console.WriteLine("Just proving that this code always runs."); } Console.ReadLine();

  9. Exceptions are Objects • System.Exception • Constructors • Properties • Hierarchy • http://msdn.microsoft.com/en-us/library/system.systemexception.aspx • System.Exception • System.ApplicationException(non fatal exceptions) • http://msdn.microsoft.com/en-us/library/system.applicationexception.aspx

  10. Custom Exceptions

  11. using System; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; namespaceCustomExceptions { publicclassMyOwnException : Exception { publicMyOwnException() : base("Sergey is not welcomed here!") //Exception(string) { //this.HelpLink= "http://msdn.microsoft.com/en-us/library/system.exception.aspx"; } } classProgram { staticstringGetName() { string s = Console.ReadLine(); if (s.Equals("Sergey")) thrownewMyOwnException(); return s; }

  12. staticvoid Main(string[] args) { stringtheName; try { theName = GetName(); Console.WriteLine("Hello {0}", theName); } catch (MyOwnExceptionnje) { 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 classProgram { staticvoidDoSomeMath() { int x = 10, y = 0; int result; try { result = x / y; Console.WriteLine("Result is {0}", result); } catch { Console.WriteLine("Error in DoSomeMath()"); thrownewArithmeticException(); } } staticvoid Main(string[] args) { try { DoSomeMath(); } catch (ArithmeticException e) { Console.WriteLine("Hmm, there was an error in there, be careful!"); } Console.ReadLine(); } }

  15. 13.3 Example: Handling DivideByZeroExceptions and FormatExceptions

  16. 13.4 .NET Exception Hierarchy

  17. 13.5 finally Block

  18. 13.7 Exception Properties

  19. 13.8 User-Defined Exception Classes

More Related