UserHelperクラスのメソッドimportUsersから(カスタム)ImportExceptionをスローしようとしています。デバッガでは、throw節が実行されていることがわかりますが、importUsersメソッドが呼び出されたメソッドは、例外を捕捉しません。ここでなぜコード実行はcatchブロックに入りませんか(java)?
は、例外がスローされた方法で、次のとおりです。
public static AccessorValidator importUsers(List<String> data, WebUser actor) throws ImportException {
//(irrelevant code removed)
try {
isSuccess = insertUserData(st, blocks, db, actor);
} catch (Exception e) {
throw new ImportException("Could not insert user on line " + rowCounter);
}
ここ
}
私はAccessorValidatorクラスのexecuteメソッドからスローされた例外をキャッチするために失敗してみてください。
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
//(irrelevant code removed)
try{
av = UserHelper.importUsers(data, admin);
System.out.print("test2");
} catch (ImportException ie) {
System.out.print("testE");
returnMessageValue = ie.getMessage();
} catch (Exception e) {
System.out.print("testE2");
}
出力は "test2"であり、コードの実行はいずれのキャッチブロックにも決して行きません。何が間違っていますか?
UserHelper.importUsers(data、admin); は例外をスローしていません! –