[英]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.