繁体   English   中英

处理ejb错误的正确方法

[英]Proper way of dealing with ejb errors

我正在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事情使我感到困惑。 哪个更好?

从您的方法抛出异常

public void create(MyObj obj) throws MyDataException  

并使用ApplicationException注释自定义异常

@javax.ejb.ApplicationException
public class MyDataException extends Exception
{

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM