残念ながら、私はを制御できませんgetUserByUserId(String)
。動作の仕方は、ユーザーが見つかった場合はユーザーを返し、ユーザーOntNoObjectExistsException
が見つからなかった場合はをスローすることです。私の問題は、何らかの理由で、キャッチOntNoObjectExistsException
がスローされたときにキャッチされないことです。
この例外のタイプ階層は次のとおりです:OntNoObjectExistsException
-> OntException
-> Exception
-> Throwable
。
public boolean isUserIdAvailable(String userId) {
try {
return super.getUserByUserId(userId) == null;
} catch (OntNoObjectExistsException e){
return true;
} catch (Exception ex) {
appLog.error(ex.getMessage());
}
return false;
}
このコードを試して水域をテストしましたが、問題は解決しませんでした。注意してください、私は捕まえてThrowable
います。
public boolean isUserIdAvailable(String userId) {
try {
return super.getUserByUserId(userId) == null;
} catch (Throwable ex) {
appLog.error(ex.getMessage());
}
return false;
}
スタックトレースは次のとおりです。
com.opennetwork.exception.OntNoObjectExistsException: User not found
at com.bcbst.dsmart.api.WebUser.getUserByUserId(WebUser.java:411)
at com.bcbst.dsmart.api.WebProspectiveMemberBean.isUserIdAvailable(WebProspectiveMemberBean.java:71)
at com.bcbst.dsmart.api.EJSLocalStatelessWebProspectiveMember_ce00ef7b.isUserIdAvailable(EJSLocalStatelessWebProspectiveMember_ce00ef7b.java:120)
at com.bcbst.prospectivememberweb.actions.UsageagreementAction.execute(UsageagreementAction.java:61)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
また、これはjava1.4であることに注意してください。私が今コントロールできない何か他のもの。