Propagate User Exceptions

Propagate User Exceptions

In Java, you can propagate checked exceptions up a class hierarchy in two ways. First, you can declare the exception in the “throws” clause of the enclosing method. Second, you can catch the exception in a try-catch block and rethrow it. You can use the second mechanism when your program wants to convert the type of the exception. For instance, if you are designing a user interface for an application, your program could throw exceptions under several conditions. However, you may not want to propagate all the exceptions up to the user interface module and especially not to the end user. In such a case, you may want to catch the exception, partially handle it (i.e. log it in a file), and then propagate up a higher level exception that makes sense to the user interface module.

 1.     public void propagateException throws UIException {2.       try {3.         // Method code here4.       }5.       catch (FileNotFoundException fnfe) {6.         // log FileNotFoundException to file7.         throw new UIException();8.       }9.       catch (IOException ioe) {10.      // log IOException to file11.      throw new UIException();12.    }13.  }

In this example, the calling application expects the user-defined exception, UIException. On Lines 5-8, FileNotFoundExceptions are caught and converted to a UIException. On Lines 9-12, IOExceptions are caught and converted to a UIException. The calling method will only be aware of UIExceptions.


Share the Post: