Sunday, April 1, 2012

Exception


Exception
=======
Java exception handling is managed via five keywords.
try
catch
throw
throws
finally

The general form of an exception-handling block:
try
{
          //block of code to monitor for errors
}
catch(Exception Type1 exObj)
{
          //exception handler for ExceptionType1
}
catch(Exception Type2 exOb)
{
          //exception handler for Exception Type2
}
//......
finally
{
          //block of code to be executed before try block ends
}
Here, Exception Type is the type of exception that has occurred.
All exception types are subclasses of the built-in class Throwable.

Program1
-------------
class Ex
{  public static void main(String args[])
          {
                   int d=0;
                   int a=42/d;
                   System.out.println("a="+a);
          }
}

Program2
-------------
class Exc1{
          static void subroutine(){
                   int d=0;
                   int a=10/d;
          }
          public static void main(String args[]){
                   Exc1.subroutine();
          }
}

Program3
-------------

class Exc2{
          public static void main(String args[]){
                   int d,a;
                   try{
                             d=0;
                             a=42/d;
                             System.out.println("This is will not be printed");
                   }
                    catch(ArithmeticException e)
                   {
                             System.out.println("Division by zero");
                   }
                   System.out.println("After catch statement");
                   }
}

Demonstrate multiple catch statements.
--------------------------------------------------
class MultiCatch
{
          public static void main(String args[]){
                   try{
                             int a=args.length;
                             System.out.println("a="+a);
                             int b=42/a;
                             int c[]={1};
                             c[42]=99;
                   }catch(ArithmeticException e){
                             System.out.println("Divide by 0:"+e);
                   }
                   catch(ArrayIndexOutOfBoundsException e){
                             System.out.println("Array index oob:"+e);
                   }
                   System.out.println("After try/catch blocks.");
          }
}

//This program contains an error.
class SuperSubCatch{
          public static void main(String args[]){
                   try{
                             int a=0;
                             int b=42/a;
                   }catch(Exception e)
                   {
                             System.out.println("Generic Exception catch.");
                   }
                   /*This catch is never reached because Arithmetic Exception is a subclass of Exception*/
          /*       catch(ArithmeticException e){
                             System.out.println("This is never reached.");
                   }*/
          }
}

An example of nested try statement.
class NestTry{
          public static void main(String args[])
          {
                   try{
                             int a=args.length;
                             int b=42/a;
                             System.out.println("a="+a);
                             try{
                                      if(a==1)
                                      a=a/(a-a);
                                      if(a==2)
                                      {
                                      int c[]={1};
                                      c[42]=99;
                             }
                             }
                             catch(ArrayIndexOutOfBoundsException e){
                                      System.out.println("Array Index Out of Bounds:"+e);
                             }
                   }
                   catch(ArithmeticException e){
                             System.out.println("Divide by 0: "+e);
                   }
          }
}

Try statements can be implicitly nested via calls to methods.
class MathNestTry{
          static void nesttry(int a){
                   try{
          if(a==1)
          a=a/(a-a);
          if(a==2)
          {
                             int c[]={1};
                             c[42]=99;
                   }
          }
          catch(ArrayIndexOutOfBoundsException e){
                   System.out.println("Array Index Out of Bounds:"+e);
          }
}

          public static void main(String args[])
                   {
                             try{
                                      int a=args.length;
                                      int b=42/a;
                                      System.out.println("a="+a);
                                      nesttry(a);
                   }
                   catch(ArithmeticException e){
                                                System.out.println("Divide by 0: "+e);
                   }
          }
}

throw
--------
general form of throw is shown here:
throw ThrowableInstance;
Here, ThrowableInstance must be an object of type Throwable or a subclass of Throwable.

class ThrowDemo
{
          static void demoproc(){
                   try{
                             throw new NullPointerException("Demo");
                   }catch(NullPointerException e){
                             System.out.println("Caught inside demoproc.");
                             throw e;
                   }
          }
          public static void main(String args[]){
                   try{
                             demoproc();
                   }catch(NullPointerException e){
                             System.out.println("Recaught :"+e);
                   }
          }
}

Here, new is used to construct an instance of NullPointerException.  All of Java's built-in-run-time exceptions have two constructors: one with no prameter and one that takes a string parameter.  When the second form is used, the argument specifies a string that describes the exception.  This string is displyed when the object is used as an argument to print() or println().  It can also be obtained by a call to getMessage(), which is defined by Throwable.

throws
---------
The general form
type method-name(parameter-list)throws exception-list
{
          //body of method
}

class ThrowsDemo
{
          static void throwone()throws IllegalAccessException
          {
                   System.out.println("Inside throwOne.");
                   throw new IllegalAccessException("demo");
          }
          public static void main(String arg[])
          {
                   try{
                             throwone();
                   }catch(IllegalAccessException e){
                             System.out.println("Caught "+e);
                   }
          }
}

Finally
---------
class Final
{
          public static void main(String arg[])
          {
                   int a,d;
                   try
                   {
                             d=0;//d=10;
                             a=50/d;
                             System.out.println("Exception not occur");
                             System.out.println(a);
                   }
                   catch(Exception ae)
                   {
                             System.out.println("Don't use zero divisor");
                   }
                   finally{
                             System.out.println("U continue your work");
                   }
                   System.out.println("After try/catch statement");
          }
}



Java's Built-in Exceptions
---------------------------------
The most general of these exceptions are subclasses of the standard type RuntimeException.  Since java.lang is implicitly imported into all java programs, most exceptions derived from RuntimeException are automatically available.

Exception                                                             Meaning
·        ArithmeticException                      Arithmetic error, such as divide-
                                                               by-zero.
·        ArrayIndexOutOfBoundsException Array index is out-of-bounds.
·        ArrayStoreException                        Assignment to an array element               
                                                                   of an incompatible type.
·        IllegalArgumentException                Illegal argument used to invoke
                                                                   a method
·        IndexOutOfBoundsException           some type of index is out-of-            
                                                                   bounds.
·        NegativeArraySizeException            Array created with a negative
                                                                   size.
·        NullPointerException                       Invalid use of a null reference.
·        NumberFormatException                           Invalid conversion of a string to
                                                                          a numeric format
·        SecurityException                                       Attempt to violate security

Creating Your Own Exception Subclasses
================================
This program creates a custom exception type.
class MyException extends Exception{
          int detail;
          MyException(int a){
                   detail=a;
          }
          public String toString(){
                   return "MyException["+detail+"]";
          }
}
class ExceptionDemo{
          static void compute(int a)throws MyException{
                   System.out.println("Called compute("+a+")");
                   if(a>10)
                   throw new MyException(a);
                   System.out.println("Normal exit");
          }
          public static void main(String args[])
          {
                   try{
                             compute(1);
                             compute(22);
                   }catch(Exception e){
                             System.out.println("Caught "+e);
                   }
          }
}


Method                                                            Description
getMessage                    Returns a string containing the error message.
toString                         Returns a string describing the exception object.

StackTraceelements              
Writes the exception object and its backtrace to standard error.A stack trace is a listing of all pending method calls at a particular point in the execution of the program.                               

No comments:

Post a Comment

Slider

Image Slider By engineerportal.blogspot.in The slide is a linking image  Welcome to Engineer Portal... #htmlcaption

Tamil Short Film Laptaap

Tamil Short Film Laptaap
Laptapp

Labels

About Blogging (1) Advance Data Structure (2) ADVANCED COMPUTER ARCHITECTURE (4) Advanced Database (4) ADVANCED DATABASE TECHNOLOGY (4) ADVANCED JAVA PROGRAMMING (1) ADVANCED OPERATING SYSTEMS (3) ADVANCED OPERATING SYSTEMS LAB (2) Agriculture and Technology (1) Analag and Digital Communication (1) Android (1) Applet (1) ARTIFICIAL INTELLIGENCE (3) aspiration 2020 (3) assignment cse (12) AT (1) AT - key (1) Attacker World (6) Basic Electrical Engineering (1) C (1) C Aptitude (20) C Program (87) C# AND .NET FRAMEWORK (11) C++ (1) Calculator (1) Chemistry (1) Cloud Computing Lab (1) Compiler Design (8) Computer Graphics Lab (31) COMPUTER GRAPHICS LABORATORY (1) COMPUTER GRAPHICS Theory (1) COMPUTER NETWORKS (3) computer organisation and architecture (1) Course Plan (2) Cricket (1) cryptography and network security (3) CS 810 (2) cse syllabus (29) Cyberoam (1) Data Mining Techniques (5) Data structures (3) DATA WAREHOUSING AND DATA MINING (4) DATABASE MANAGEMENT SYSTEMS (8) DBMS Lab (11) Design and Analysis Algorithm CS 41 (1) Design and Management of Computer Networks (2) Development in Transportation (1) Digital Principles and System Design (1) Digital Signal Processing (15) DISCRETE MATHEMATICS (1) dos box (1) Download (1) ebooks (11) electronic circuits and electron devices (1) Embedded Software Development (4) Embedded systems lab (4) Embedded systems theory (1) Engineer Portal (1) ENGINEERING ECONOMICS AND FINANCIAL ACCOUNTING (5) ENGINEERING PHYSICS (1) english lab (7) Entertainment (1) Facebook (2) fact (31) FUNDAMENTALS OF COMPUTING AND PROGRAMMING (3) Gate (3) General (3) gitlab (1) Global warming (1) GRAPH THEORY (1) Grid Computing (11) hacking (4) HIGH SPEED NETWORKS (1) Horizon (1) III year (1) INFORMATION SECURITY (1) Installation (1) INTELLECTUAL PROPERTY RIGHTS (IPR) (1) Internal Test (13) internet programming lab (20) IPL (1) Java (38) java lab (1) Java Programs (28) jdbc (1) jsp (1) KNOWLEDGE MANAGEMENT (1) lab syllabus (4) MATHEMATICS (3) Mechanical Engineering (1) Microprocessor and Microcontroller (1) Microprocessor and Microcontroller lab (11) migration (1) Mini Projects (1) MOBILE AND PERVASIVE COMPUTING (15) MOBILE COMPUTING (1) Multicore Architecute (1) MULTICORE PROGRAMMING (2) Multiprocessor Programming (2) NANOTECHNOLOGY (1) NATURAL LANGUAGE PROCESSING (1) NETWORK PROGRAMMING AND MANAGEMENT (1) NETWORKPROGNMGMNT (1) networks lab (16) News (14) Nova (1) NUMERICAL METHODS (2) Object Oriented Programming (1) ooad lab (6) ooad theory (9) OPEN SOURCE LAB (22) openGL (10) Openstack (1) Operating System CS45 (2) operating systems lab (20) other (4) parallel computing (1) parallel processing (1) PARALLEL PROGRAMMING (1) Parallel Programming Paradigms (4) Perl (1) Placement (3) Placement - Interview Questions (64) PRINCIPLES OF COMMUNICATION (1) PROBABILITY AND QUEUING THEORY (3) PROGRAMMING PARADIGMS (1) Python (3) Question Bank (1) question of the day (8) Question Paper (13) Question Paper and Answer Key (3) Railway Airport and Harbor (1) REAL TIME SYSTEMS (1) RESOURCE MANAGEMENT TECHNIQUES (1) results (3) semester 4 (5) semester 5 (1) Semester 6 (5) SERVICE ORIENTED ARCHITECTURE (1) Skill Test (1) software (1) Software Engineering (4) SOFTWARE TESTING (1) Structural Analysis (1) syllabus (34) SYSTEM SOFTWARE (1) system software lab (2) SYSTEMS MODELING AND SIMULATION (1) Tansat (2) Tansat 2011 (1) Tansat 2013 (1) TCP/IP DESIGN AND IMPLEMENTATION (1) TECHNICAL ENGLISH (7) Technology and National Security (1) Theory of Computation (3) Thought for the Day (1) Timetable (4) tips (4) Topic Notes (7) tot (1) TOTAL QUALITY MANAGEMENT (4) tutorial (8) Ubuntu LTS 12.04 (1) Unit Wise Notes (1) University Question Paper (1) UNIX INTERNALS (1) UNIX Lab (21) USER INTERFACE DESIGN (3) VIDEO TUTORIALS (1) Virtual Instrumentation Lab (1) Visual Programming (2) Web Technology (11) WIRELESS NETWORKS (1)

LinkWithin