Hitachi

VisiBroker Version 5 Borland(R) Enterprise Server VisiBroker(R) プログラマーズリファレンス


2.10.1 ユーザ定義例外

ユーザ定義例外は,org.omg.CORBA.UserExceptionを継承するファイナルJavaクラスにマッピングされます。そうでない場合,HelperクラスおよびHolderクラスの生成があるIDL struct型のようにマッピングされます。

例外が,ネストされたIDLスコープ内(特に,インタフェース内)で定義される場合,そのJavaクラス名は特殊スコープ内に定義されます。そうでない場合,そのJavaクラス名は,例外のあるIDLモジュールに対応するJavaパッケージのスコープ内に定義されます。

コードサンプル2-26 ユーザ定義例外のマッピング
//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( ) {...}
}