| 
   Java 
  TOPIC i05 – ERROR HANDLING 2 
    
    
    
  LESSON NOTE 
    
    
    
  INTRO 
    
  In
  this lesson, we will learn how to create our own type of Exception and use it
  in a Java program. 
    
  OUR OWN CLASS 
    
  To
  create our own Exception type, we can simply create our own class that
  extends Exception. We can of course provide more functionality if we wanted
  to but for our example, we will keep it basic. 
    
  
   
    | 
     EXAMPLE 
                                                           
    In
    this example, we will create an exception that occurs when we try to divide
    a number by zero.  We aren’t adding
    any new functionality here. 
      
    public class DivideByZeroException extends Exception 
    { 
       public DivideByZeroException(String m) 
       { 
            super(m); 
       } 
    } 
     | 
    
   
    
  THROWING THE EXCEPTION 
    
  We
  can now create a method that will throw our exception.  To do this, we will make use of the throw keyword inside the method block where
  the exception occurs (or would occur). 
  Of course, that method now throws
  the exception (in its method prototype). 
    
  
   
    | 
     EXAMPLE 
      
    The
    method below divides top by bottom. If bottom is equal to zero, it throws
    the DivideByZeroException. 
      
    public static double divide(double top, double bottom) throws DivideByZeroException 
    { 
       if (bottom==0) 
      
    { 
             throw new DivideByZeroException("Can't divide by zero."); 
      
    } 
       else 
      
    { 
             return
    top/bottom; 
      
    } 
    } 
     | 
    
   
    
  HANDLING THE EXCEPTION 
    
  We
  now need to handle our exception.  We
  do this using the approaches from the previous lesson. 
    
  
   
    | 
     EXAMPLE 
      
    In
    the main method below, we use a try/catch structure to handle our
    exception.  Notice that e.getMessage() returns the message that was
    provide when the exception was created. 
      
    Note
    that this main method would be in the same class as the divide method.  
      
       public static void main(String[] args) 
      
    { 
             try 
             { 
                double answer = divide(10,0); 
             } 
             catch(DivideByZeroException e) 
             { 
                   System.out.println(e.getMessage()); 
             } 
      
    } 
     | 
    
   
    
    
    
    
   |