150 likes | 265 Views
CSE 1341 Principles of Computer Science I. Spring 2008 Mark Fontenot mfonten@engr.smu.edu. Note Set 10. Note Set 10 Overview. Exception Handling. exception. Exception – an indication of a problem that occurs during a program’s execution
E N D
CSE 1341 Principles of Computer Science I Spring 2008 Mark Fontenot mfonten@engr.smu.edu Note Set 10
Note Set 10Overview Exception Handling
exception • Exception – an indication of a problem that occurs during a program’s execution • Exception handling allows the graceful handling of errors in a program. • Goal – allow the program to continue executing as if no problem had been encountered • Can somewhat separate error handling code from regular processing code
The standard Do Something (processing) Check to see if it worked (error checking) Do something else Check to see if it worked Do Something Check to see if it worked
Read input; exception occurs if input is not a valid integer Attempt to divide; denominator may be zero
Exception Handling Code try { //put code here that might // throw an exception //if exception is thrown, move to catch } catch (InputMismatchException e) { //Handle the exception case here – do what is //needed to gracefully recover from the //exception } catch (Exception e) { //Can handle multiple types of exceptions } Try Block Exception handlers Exception Parameter Uncaught exception – exception for which there is no exception handler - exception type doesn’t match any of the catch blocks
ExceptionTest public class ExceptionTest { public static void main (String [] args) { int x = 3; int y = 0; int z = x / y; System.out.println(z); } } throws ArithmeticException run: Exception in thread "main" java.lang.ArithmeticException: / by zero at ExceptionTest.main(ExceptionTest.java:9) Java Result: 1
ExceptionTest2 public class ExceptionTest2 { public static void main (String [] args) { int x = 3; int y = 0; int z = 0; try { z = x / y; } catch (ArithmeticException e) { System.out.println("Exception Caught"); } System.out.println(z); } } run-single: Exception Caught 0
With Scanner import java.util.*; public class ExceptionTest3 { public static void main (String [] args) { Scanner s = new Scanner(System.in); int x = 0; int y = 0; try { x = s.nextInt(); } catch (InputMismatchException e) { e.printStackTrace(); } } }
Use Java API JAVA API lists the exceptions thrown by each method
Termination Model of Exception Handling try { code line 1 code line 2 code line 3 } catch (Exception e) { handler 1 handler 2 } code line 4 code line 5 if line 2 throws exception, control transfers to exception handler then to line of code after handlers.
Objectville All exception classes directly or indirectly extend java.lang.Exception. It is possible to create your own exception classes by extending java.lang.Exception.
Objectville • Unchecked Exceptions • Subclass of RuntimeException • Not required to be handled • Checked Exceptions • Subclass of Exception • Must be handled or explicitlyor declared w/ throws
throws public intmyFunction () throws MySpecialException{ //Code here that could throw a MySpecialException //but you don’t want to handle it here for some reason //so you have to declare that this method could also throw //MySpecialException – a checked exception }