ユーザ定義例外は,org.omg.CORBA.UserExceptionを継承するファイナルJavaクラスにマッピングされます。そうでない場合,HelperクラスおよびHolderクラスの生成があるIDL struct型のようにマッピングされます。
例外が,ネストされたIDLスコープ内(特に,インタフェース内)で定義される場合,そのJavaクラス名は特殊スコープ内に定義されます。そうでない場合,そのJavaクラス名は,例外のあるIDLモジュールに対応するJavaパッケージのスコープ内に定義されます。
//IDL
module Example {
exception AnException {
string reason;
};
};
//Generated Java
package Example;
public final class AnException extends
org.omg.CORBA.UserException {
public java.lang.String extra;
public AnException( ) {...}
public AnException(java.lang.String extra) {...}
public AnException(java.lang.String _reason,
java.lang.String extra) {...}
public java.lang.String to String( ) {...}
public boolean equals(java.lang.Object o) {...}
}
public final class AnExceptionHolder implements
org.omg.CORBA.portable.Streamable {
public Example.AnException value;
public AnExceptionHolder( ){}
public AnExceptionHolder(
final Example.AnException _vis_value) {...}
public void _read(final org.omg.CORBA.portable.
InputStream input) {...}
public void _write(final org.omg.CORBA.portable.
OutputStream output) {...}
public org.omg.CORBA.TypeCode _type( ) {...}
}