Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Java Basics Exception Handling Topics To Be Covered • Objective • Exception Handling • Summary Objectives At the end of this course, you will be able to understand: • Exception Handling Exception Handling Exception Handling • A built in mechanism for trapping & handling runtime errors • Usually deals with abnormal events or code execution which prevents the program from continuing, like: – Array out of bounds accesses – Divide by Zero – Null pointers & so on... www.prolearninghub.com Exception Handling • An exception is an event, which occur during the execution of a program that disrupt the normal flow of a program’s instruction. • Exception handling in java • When error occur the program through an exception, when it through the system attempts to handle it. There are verity of methods to handle this. The list of methods is known as call stack. www.prolearninghub.com Exception Handling What is Exception? • An Exception is a runtime error • To represent all types of exceptions there Is an Exception class in Java • A variety of subclasses allows handling different kinds of errors & abnormal events • Basic concept: • Whenever an abnormal event occurs. Java throws an Exception • It means Java creates an object of subclass of the Exception class • Whenever an Exception could possibly be thrown, we must provide a mechanism for catching it in our code www.prolearninghub.com Kind of Exception There are three kind of exceptions: • Checked exceptions • Errors • Runtime exceptions www.prolearninghub.com Kind of Exception Checked Exception: These are exceptional conditions that a well written program should anticipate and recover from. For example an application prompts a user from an input file name, and then open the file by passing the name to the constructor. IOException, SQLException are checked exceptions. www.prolearninghub.com Kind of Exception Errors: These are exceptional conditions that are external to the application, and that the application usually cannot anticipate or recover from. For example an application is successfully opens a file for input, but is unable to read the file because of the hardware of system malefaction . Examples: OutOfMemoryError, VirtualMachineError, www.prolearninghub.com AssertionError are errors. Kind of Exception Runtime exceptions: These are exceptional conditions that are internal to the application, and that are application could not recover or anticipate from. Examples: ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException www.prolearninghub.com Exception Handling Catching Exception • A try statement executes a block and oversees the execution of enclosed statements for exceptions • A try also defines the scope for exception handlers (defined in catch clause) • A try block must be accompanied by at least one catch block or one finally block • Any method declared as being able to throw an Exception, can have a try / catch block to handle the exception www.prolearninghub.com Exception Handling Catching Exception Java try block is used to enclose the code that might throw an exception. It must be used within the method. Java try block must be followed by either catch or finally block. www.prolearninghub.com Exception Handling Catching Exception Syntax of java try-catch try{ //code that may throw exception }catch(Exception_class_Name ref){} Syntax of try-finally block try{ //code that may throw exception }finally{} www.prolearninghub.com Exception Handling Exception Example public class ExceptionDemo1 { public static void main(String [ ] args) { int [ ] x = {1,2,3}; try { System.out.println(“x[0] = * + x[0]); System.out.println("x[5] = * + x[5]); } catch(ArraylndexOutOfBoundsException ae) { System.out.println("Index Does Not Exist"); } } } www.prolearninghub.com Exception Handling Exception Example public class Testtrycatch2{ public static void main(String args[]){ try{ int data=50/0; }catch(ArithmeticException e){ System.out.println(e); } System.out.println("rest of the code..."); } } www.prolearninghub.com Object Exception Handling Throwable Error ... Exception ... Exception Hierarchy RuntimeException ... www.prolearninghub.com Exception Handling Categories of Exception Java exceptions fall in two categories: 1. Unchecked - Not checked by the compiler at compile time Does not force the client program / method to declare each exception thrown by a method, or even handle it All exceptions are derived from RuntimeException class 2. Checked - Checked by the compiler to see if these exceptions are properly caught or specified, & if not. the code fails to compile - Forces client program to deal with the scenario in which an exception may be thrown - All exceptions which are not derived from RuntimeException class www.prolearninghub.com Exception Handling Multiple Catch Blocks • A method can throw more than one possible Exceptions, or the try block could call two different methods that throw two different Exceptions try { String text = "text"; System.out.println(text.charAt(10)); int n = Integer.parseInt("abc"); } catch(IndexOutOfBoundsException e) { System.err.printIn(“Index out of bounds"); e.printStackTrace(); } catch(NumberFormatException e) { System.err.printIn("bad number"); e.printStackTrace(); } www.prolearninghub.com Exception Handling Multiple Catch Blocks • Since all Exceptions are subclasses of the Exception class, we can generalize catch blocks to accept multiple different types of Exceptions by using a super class try { String text = "text"; System.out.println(text.charAt(10)); int n = Integer.parseInt("abc"); } catch(Exception e) { System.err.printIn(“Something bad happened"); e.printStackTrace(); } www.prolearninghub.com Exception Handling The finally Block • • • Sometimes, while in a try / catch block, an Exception could be thrown before some important code at the end of the try block The finally block can be used to run this code Code in finally always executes (even in case of unhandled exceptions) try { String text = "text"; System.out.println(text.charAt(10)); } catch(lndexOutOfBoundsException e) { System.err.println("Index out of bounds"); e.printStackTrace(); } finally { System.out.println("This is going to Excecute always"); } www.prolearninghub.com Exception Handling Exception Propagation • Exceptions are always propagated from the called method to the caller method, if thrown from the called method • If an Exception is thrown from the main() method, it will be propagated to the Java Runtime • In exception propagation, all statement executions are ignored until finding the exception handler www.prolearninghub.com Exception Handling Arithmetic Exception Occurred public class Propagate { void calculate() { int n = 25, i = 0; i = n/i; } public static void main(String[] args) { Propagate p = new Propagate(); p.calculate(); } } Exception propagated from calculate () to main () method Exception in thread “main" java.lang.ArithmeticException: / by zero at Propagate.calculate(Propagate.java:4) at Propagate.main(Propagate.java:8) Exception propagated from main() function to Java www.prolearninghub.com Summary Summary In this session, we have covered: Exception Handling • Introduction • Checked & Unchecked Exceptions • Using try, catch, finally • Exception Propagation www.prolearninghub.com Sample Exercise #1 What type of exception is divide by zero is ? This is an athematic exception . www.prolearninghub.com