我的应用程序的架构是这样的:
Main classe - > 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 {
答案 0 :(得分:0)
您正在记录RemoteException
的消息,但是您会抛出一条没有消息的RemoteException
。