User-defined exceptions in Java

User-defined exceptions are defined in the component’s IDL definition. For example, you might define OverdrawnException to be thrown by methods that withdraw money from a bank account. In Java, all user-defined exceptions extend org.omg.CORBA.UserException.

In Java, IDL user-defined exceptions are checked exceptions; if the IDL definition of a method contains a raises clause, the equivalent Java stub method will have a throws clause that lists the equivalent Java exceptions. For example, consider the IDL definition below:

module MyModule { 
   exception MyException 
   { 
      string reason; 
   }; 

   interface MyIntf { 
      boolean throwException 
      ( in boolean yes_no ) 
      raises (MyException); 
   }; 
}; 

The equivalent Java throwException method is:

boolean throwException (boolean yes_no) 
   throws MyModule.MyException; 

NoteAs per the CORBA specification, methods defined on exceptions cannot be marshalled to the client; that is, information provided with an exception must be in a public variable.