ネットワーク上の例外のマーシャリング

JboExceptionには、ネットワーク全体で自身をマーシャリングする機能があります。また、ビジネス・ロジック層のNLSの処理を行い、ビジネス・ロジック層コンポーネントの1つのインスタンスを(たとえば)フランス語ユーザーと英語ユーザーが同時に使用できるようにします。

例外に、マーシャリングが必要なメンバー・データが含まれている場合は、JboExceptionを拡張します。シリアライズされたストリームの管理を強化する必要がある場合は、readObjectメソッドおよびwriteObjectメソッドを実装します。Javaシリアライズ・メカニズムでは、オブジェクトをシリアライズまたはシリアライズを復元するために、これらのメソッドが使用されます。次の処理を行う場合には、これらのメソッドを実装します。

たとえば、(次に示すような)MyExceptionというクラスがあり、memberAmemberBを異なる層の間で受け渡すとします。

public class MyException extends JboException 
{
int memberA;
String memberB;
...
}

次のようなコードをMyException内に書きます。

private void writeObject(ObjectOutputStream out) throws IOException { 
out.writeInt(memberA);
out.writeUTF(memberB);
}
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { 
memberA = in.readInt();
memberB = in.readUTF();
}