繁体   English   中英

从DAO捕获异常到第一类调用方法,

[英]Catching exception from DAO to the first class calling method,

我的应用程序的体系结构是这样的:

主类-> ServiceBean->管理器-> DAO。

我在DAO中抛出异常:

catch (HibernateException he) {
        throw new RemuRuntimeLoggableException(he, RuntimeLoggableException.HIBERNATE_UNKNOWN);
    }

然后在Manager中,我捕获到如下异常:

catch (RuntimeLoggableException e) {
                            log.info(e.getMessage());
                            e.printStackTrace();
                            throw new RuntimeLoggableException(e, RuntimeLoggableException.HIBERNATE_UNKNOWN);

在我的ServiceBean中,我有这个:

catch (RuntimeLoggableException e) {
        log.info(e.getMessage());
        e.printStackTrace();
        throw new RemoteException();

在我的主班上,我遇到了如下异常:

catch (RemoteException e) {
        log.info(prefixeLog + " Error");
        log.info(e.getMessage());

我也有一个Service.java接口。 ServiceBean实现此接口,并且在下面的接口Service.java中声明此处涉及的方法:

 public void calculate( boolean flag )
  throws java.rmi.RemoteException;

我得到的问题是ServiceBean的RemoteException异常未捕获在主类中。 而且我无法修改Service.java接口,因为它是XDoclet自动生成的。 任何想法如何做到这一点请?

在我的Service.java中,方法声明如下:

  public void calculate( boolean flag )
  throws java.rmi.RemoteException;

在我的课堂上,它的声明如下:

 public static void main(String[] args) throws RuntimeLoggableException {
 try {
        log.info("Start" + prefixeLog);
        serviceBean.calculate(true);
        log.info("End" + prefixeLog);
    } catch (RemoteException e) {
        log.info(prefixeLog + " Error");
        log.info(e.getMessage());
    }
    finally {
        InitFramework.stopFramework(FrameworkFacade.BATCH);
        System.exit(retour);
    }
}

在我的serviceBean中:

 public void calculate(boolean flagExclurePlansPerimes) throws RemoteException {

您正在记录RemoteException的消息,但是会抛出一个没有消息构造的RemoteException

暂无
暂无

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

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