Exception handling

50 %
50 %
Information about Exception handling

Published on February 25, 2014

Author: garudatrainings



Brief notes on Exception Handling with examples.

Exception Handling Exception is an error event that can happen during the execution of a program and disrupts its normal flow. Java provides a robust and object oriented way to handle exception scenarios, known as Java “Exception Handling”. Some of the reasons where exception occurs: 1) A user has entered invalid data. 2) A file that needs to be opened cannot be found. 3) A network connection has been lost in the middle of communications or the JVM has run out of memory. 4) Some of these exceptions are caused by user error, others by programmer error, and others by physical resources that have failed in some manner. Exception Handling Keywords Here is a list of most common checked and unchecked Java's Built-in Exceptions. try-catch : A method catches an exception using a combination of the try and catch keywords. We use try-catch block for exception handling in our code. try is the start of the block and catch is at the end of try block to handle the exceptions. We can have multiple catch blocks with a try and try-catch block can be nested also. catch block requires a parameter that should be of type Exception. try { //Protected code } catch(ExceptionName a1) { //Catch block Phone: +1-508-841-6144

Exception Handling } Multiple catch Blocks: A try block can be followed by multiple catch blocks. The syntax for multiple catch blocks is: try { //Protected code } catch(ExceptionType1 a1) { //Catch block } catch(ExceptionType2 a2) { //Catch block } catch(ExceptionType3 a3) { //Catch block } The previous statements demonstrate three catch blocks, but you can have any number of them after a single try. If an exception occurs in the protected code, the exception is thrown to the first catch block in the list. If the data type of the exception thrown matches ExceptionType1, it gets caught there. If not, the exception passes down to the second catch statement. This continues until the exception either is caught or falls through all catches, in which case the current method stops execution and the exception is thrown down to the previous method on the call stack. throw : We know that if any exception occurs, an exception object is getting created and then Java runtime starts processing to handle them. Sometime we might want to generate exception explicitly in our code, for example in a user authentication program we should throw exception to client if the password is null. throw keyword is used to throw exception to the runtime to handle it. Program execution stops while encountering throw statement and the closest catch statement is checked for matching type of exception. Phone: +1-508-841-6144

Exception Handling Example: Class Test { Static void avg() { Try { throw new ArithmeticException(“demo”); } Catch(ArithmeticException e) { System.out.println(“Exception Caught”); } } Public static void main(String args[]) { avg() } } throws : Phone: +1-508-841-6144

Exception Handling When we are throwing any exception in a method and not handling it, then we need to use throws keyword in method signature to let caller program know the exceptions that might be thrown by the method. The caller method might handle these exceptions or propagate it to it’s caller method using throws keyword. We can provide multiple exceptions in the throws clause and it can be used with main() method also. Example: Class Test { Static void check() throws Arithmetic Expression { System.out.println(“Inside check function”); throw new ArithmeticException(“demo”); } Public static void main(String args[]) { Try { Check(); } Catch(ArithmeticException e) { System.out.println(“caught” +e); } } Phone: +1-508-841-6144

Exception Handling } finally : finally block is optional and can be used only with try-catch block. Since exception halts the process of execution, we might have some resources open that will not get closed, so we can use finally block. finally block gets executed always, whether exception occurred or not. Example: class ExceptionTest { public static void main(String args[]) { int a[]= new int[2]; System.out.println(“out of try”); try { System.out.println(“access invalid element” + a[3]); } finally { System.out.println(“finally is always executed”); } } } Common Exceptions: In Java, it is possible to define two catergories of Exceptions and Errors. Phone: +1-508-841-6144

Exception Handling JVM Exceptions: These are exceptions/errors that are exclusively or logically thrown by the JVM. Examples : NullPointerException, ArrayIndexOutOfBoundsException, ClassCastException. Programmatic exceptions: These exceptions are thrown explicitly by the application or the API programmers Examples: IllegalArgumentException, IllegalStateException. Exception Hierarchy: As stated earlier, when any exception is raised an exception object is getting created. Java Exceptions are hierarchical and inheritanceis used to categorize different types of exceptions. Throwable is the parent class of Java Exceptions Hierarchy and it has two child objects – Error and Exception. Exceptions are further divided into checked exceptions and runtime exception. 1. Errors: Errors are exceptional scenarios that are out of scope of application and it’s not possible to anticipate and recover from them, for example hardware failure, JVM crash or out of memory error. That’s why we have a separate hierarchy of errors and we should not try to handle these situations. Some of the common Errors are OutOfMemoryError and StackOverflowError. 2. Checked Exceptions: Checked Exceptions are exceptional scenarios that we can anticipate in a program and try to recover from it, for example FileNotFoundException. We should catch this exception and provide useful message to user and log it properly for debugging purpose. Exception is the parent class of all Checked Exceptions and if we are throwing a checked exception, we must catch it in the same method or we have to propagate it to the caller using throws keyword. 3. Runtime Exception: Phone: +1-508-841-6144

Exception Handling Runtime Exceptions are cause by bad programming, for example trying to retrieve an element from the Array. We should check the length of array first before trying to retrieve the element otherwise it might throwArrayIndexOutOfBoundException at runtime. RuntimeException is the parent class of all runtime exceptions. If we are throwing any runtime exception in a method, it’s not required to specify them in the method signature throws clause. Runtime exceptions can be avoided with better programming. Useful Exception Methods: Some of the useful methods of Throwable class are; 1. public String getMessage() – This method returns the message String of Throwable and the message can be provided while creating the exception through it’s constructor. 2. public String getLocalizedMessage() – This method is provided so that subclasses can override it to provide locale specific message to the calling program. Throwable class implementation of this method simply use getMessage() method to return the exception message. 3. public synchronized Throwable getCause() – This method returns the cause of the exception or null id the cause is unknown. 4. public String toString() – This method returns the information about Throwable in String format, the returned String contains the name of Throwable class and localized message. Phone: +1-508-841-6144

Exception Handling 5. public void printStackTrace() – This method prints the stack trace information to the standard error stream, this method is overloaded and we can pass PrintStream or PrintWriter as argument to write the stack trace information to the file or stream. Phone: +1-508-841-6144

Add a comment

Related presentations

Tyrone  aurelio

Tyrone aurelio

November 10, 2014


E portfolio-1

E portfolio-1

November 10, 2014


John's presentation to EMBA students on knowledge work, the innovation ethics and ...

Looking for an icebreaker that helps team members learn more about each other, imp...

Quantas vezes você pensou sobre diferentes formas de conseguir ter mais foco. São ...

Os segredos do sucesso - Dale Carnegie O livro de Dale Carnegie "Como Ganhar Ami...

Related pages

Ausnahmebehandlung – Wikipedia

Die größte Rolle in der Programmierung spielt dabei die strukturierte Ausnahmebehandlung (englisch structured exception handling, kurz SEH), ...
Read more

Exception handling - Wikipedia, the free encyclopedia

Exception handling is the process of responding to the occurrence, during computation, of exceptions – anomalous or exceptional conditions requiring ...
Read more

Exception Handling in Java - javatpoint

Exception Handling in Java with checked, unchecked and errors with example and usage of try, catch, throw, throws and finally keywords.
Read more

Java Exception Handling -

This tutorial series explains various aspects, tips and tricks of Java exception handling including exception hierarchies, checked and unchecked exceptions ...
Read more

Exceptions and Exception Handling (C# Programming Guide)

See the following topics for more information about exceptions and exception handling: Using Exceptions (C# Programming Guide) Exception Handling (C# ...
Read more

Java - Exceptions - Tutorialspoint

Java Exceptions- Learning Java ... Based on these we have three categories of Exceptions you need to understand them to know how exception handling works ...
Read more

PHP: Ausnahmebehandlung (Exception-Handling) - Manual

PHP 5 hat ein Exceptionmodell ähnlich dem anderer Programmiersprachen. Eine Exception kann in PHP geworfen und abgefangen werden.
Read more

Exception Handling - Willkommen auf

Exception Handling. In diesem Kapitel widmen wir uns der Fehlerbehandlung. Fehler führen in anderen Programmiersprachen, wie z.B.. in C, direkt zu ...
Read more

Structured Exception Handling -

An exception is an event that occurs during the execution of a program, and requires the execution of code outside the normal flow of control.
Read more

Lesson: Exceptions (The Java™ Tutorials > Essential Classes)

This Java tutorial describes exceptions, basic input/output, concurrency, regular expressions, and the platform environment
Read more