Skip to main content

Exception Handling (RunTime Error)

Java Error Handling:
In general, errors can be broken up into two categories: Design-time errors and Logical errors. Design-time errors are easy to spot because NetBeans usually underlines them. If the error will prevent the programme from running,   NetBeans will underline it in red. Logical errors are the ones that you make as a programmer. The programme will run but, because you did something wrong with the coding, there's a good chance the entire thing will crash. You'll see examples of run-time errors shortly. You'll also see how to handle them. But first a word on how Java handles errors.
Exceptions
What is an exception?
An Exception can be anything which interrupts the normal flow of the program. When an exception occurs program processing gets terminated and doesn’t continue further. In such cases we get a system generated error message. The good thing about exceptions is that they can be handled.
When an exception can occur?
Exception can occur at runtime (known as runtime exceptions) as well as at compile-time (known Compile-time exceptions).
Reasons for Exceptions
There can be several reasons for an exception. For example, following situations can cause an exception - Opening a non-existing file, Network connection problem, Operands being manipulated are out of prescribed ranges, class file missing which was supposed to be loaded and so on.

Difference between error and exception

Errors indicate serious problems and abnormal conditions that most applications should not try to handle. Error defines problems that are not expected to be caught under normal circumstances by our program. For example memory error, hardware error, JVM error etc.
Exceptions are conditions within the code. A developer can handle such conditions and take necessary corrective actions. Few examples -
·       DivideByZero exception
·       NullPointerException
·       ArithmeticException
·       ArrayIndexOutOfBoundsException

Advantages of Exception Handling:

·       Exception handling allows us to control the normal flow of the program by using exception handling in program.
·       It throws an exception whenever a calling method encounters an error providing that the calling method takes care of that error.
·       It also gives us the scope of organizing and differentiating between different error types using a separate block of codes. This is done with the help of try-catch blocks.

What is Try Block?

The try block contains a block of program statements within which an exception might occur. A try block is always followed by a catch block, which handles the exception that occurs in associated try block. A try block must followed by a Catch block or Finally block or both.

Syntax of try block

try{
   //statements that may cause an exception
}

What is Catch Block?

A catch block must be associated with a try block. The corresponding catch block executes if an exception of a particular type occurs within the try block. For example if an arithmetic exception occurs in try block then the statements enclosed in catch block for arithmetic exception executes.

Syntax of try catch in java

try
{
     //statements that may cause an exception
}
catch (exception(type) e(object))‏
{
     //error handling code
}

Flow of try catch block

If an exception occurs in try block then the control of execution is passed to the catch block from try block. The exception is caught up by the corresponding catch block. A single try block can have multiple catch statements associated with it, but each catch block can be defined for only one exception class. The program can also contain nested try-catch-finally blocks.
After the execution of all the try blocks, the code inside the finally block executes. It is not mandatory to include a finally block at all, but if you do, it will run regardless of whether an exception was thrown and handled by the try and catch blocks.

An example of Try catch in Java

class Example1 {
   public static void main(String args[]) {
     int num1, num2;
     try { 
        // Try block to handle code that may cause exception
        num1 = 0;
        num2 = 62 / num1;
        System.out.println("Try block message");
     } catch (ArithmeticException e) { 
            // This block is to catch divide-by-zero error
            System.out.println("Error: Don't divide a number by zero");
       }
     System.out.println("I'm out of try-catch block in Java.");
   }
}
Output:
Error: Don't divide a number by zero
I'm out of try-catch block in Java.

Multiple catch blocks in Java

1. A try block can have any number of catch blocks.
2. A catch block that is written for catching the class Exception can catch all other exceptions
Syntax:
catch(Exception e){
  //This catch block catches all the exceptions
}
3. If multiple catch blocks are present in a program then the above mentioned catch block should be placed at the last as per the exception handling best practices.
4. If the try block is not 
throwing any exception, the catch block will be completely ignored and the program continues.
5. If the try block 
throws an exception, the appropriate catch block (if one exists) will catch it
  catch(Arithmetic Exception e)
is a catch block that can catch ArithmeticException
 catch(NullPointerException e)
is a catch block that can catch NullPointerException

6. All the statements in the catch block will be executed and then the program continues.

Example of Multiple catch blocks

class Example2{
   public static void main(String args[]){
     try{
         int a[]=new int[7];
         a[4]=30/0;
         System.out.println("First print statement in try block");
     }
     catch(ArithmeticException e){
        System.out.println("Warning: ArithmeticException");
     }
     catch(ArrayIndexOutOfBoundsException e){
        System.out.println("Warning: ArrayIndexOutOfBoundsException");
     }
     catch(Exception e){
        System.out.println("Warning: Some Other exception");
     }
   System.out.println("Out of try-catch block...");
  }
}
Output:
Warning: ArithmeticException
Out of try-catch block...

In the above example there are multiple catch blocks and these catch blocks executes sequentially when an exception occurs in try block. Which means if you put the last catch block ( catch(Exception e)) at the first place, just after try block then in case of any exception this block will execute as it has the ability to handle all exceptions. This catch block should be placed at the last to avoid such situations.

Comments

Popular posts from this blog

Step-by-Step guide for Installing MySQL on Windows

Step-by-Step guide for Installing MySQL on Windows Y ou can download the MySQL database from the MySQL website http://www.mysql.com by clicking on the downloads tab. Scroll down to the MySQL database server & standard clients section and select the latest production release of MySQL, 5.1.35 at the time of writing. Installation of MySQL Server: Unzip the setup file and execute the downloaded . MSI file. Follow the instructions below exactly when installing MySQL Server: Click on the "setup" MySQL Installing Type There are three type of MySQL Installation:- Typical  This MySQL installing process install the  MySQL server,command- line client and command line utilities. This command line and command client included in mysqldump, myisamchk and several tools to manage the MySQL Server. Complete By this installation type we install all the component included in the installation package. And this package include the component such as suppor...

How to Grant Privilages to an account in MYSQL

MYSQL 'GRANT' statement allows you to grant access privileges to database account. To achieve same ,syntax  is as follow: Syntax:- GRANT privileges [Column_List] ON  [Object_Type] Privilege_level To account [IDENTIFIED BY 'password'] [ REQUIRE encryption ] WITH with_option ; Detailed explanation: Privileges:- It indicates that you have assign privileges to account. column_List : - (1) Its  optional.                          (2) Column(s) to which privileges apply. Privileges_level :- Level at which privileges apply. You can use global  privileges,database privileges,table specific privileges, column privileges etc. Account :- Which  account is being granted privileges. Password: - Specifies password.It replace old password. Required:- Clause specify whether the account has to connect to database server over secure connec...