Я пытаюсь сгенерировать (специальное) ImportException из метода importUsers в классе UserHelper. Я вижу в отладчике, что предложение throw выполняется, но метод, из которого вызывается метод importUsers, никогда не перехватывает исключение.
Вот метод, где выбрасывается исключение:
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);
}
}
Здесь я безуспешно пытаюсь поймать выброшенное исключение из метода execute в классе AccessorValidator:
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», и выполнение кода никогда не попадает ни в один из блоков catch. Что я делаю не так?