1

私は EJB クライアント + サーバーに取り組んでいますが、クライアントでサーバー データ エラーを処理する方法を知りたいです。クライアントで戻り値を確認するか、例外をキャッチする必要がありますか? 戻り値ロジックを使用する例:

//server bean method
public int create(MyObj obj) {
    int PKID = someDataService.create(obj);
    return PKID;
}

//client
if(!(MyBean.create(obj) > 0)) {
    showMessage("Can't create MyObj");
}

例外のある例:

//server bean method
public void create(MyObj obj) {
    int PKID = someDataService.create(obj);
    if(!(id > 0)) {
        //only EJBExceptions will be delivered to client
        throw new EJBException(new MyDataException());
    }
}

//client
try {
    MyBean.create(obj);
}
catch(EJBException e) {
    if(e.getCause().getClass.equals(MyDataException.class)) {
        showMessage("Can't create MyObj");
    }
    else {
        showMessage("Some boring error occurred");
    }
}

例外の代わりに戻り値をチェックすることは、C でコーディングするように見えますが、この EJB のすべてのことは私を混乱させます。どちらがより良い方法ですか?

4

1 に答える 1

1

メソッドから例外をスローする

public void create(MyObj obj) throws MyDataException  

カスタム例外に注釈を付けますApplicationException

@javax.ejb.ApplicationException
public class MyDataException extends Exception
{
于 2012-10-31T15:43:15.550 に答える