J'essaie de lancer une exception ImportException (custom) à partir de la méthode importUsers dans la classe UserHelper. Je peux voir dans le débogueur que la clause throw est exécutée, mais la méthode, à partir de laquelle la méthode importUsers est appelée, n'obtient jamais l'exception.Pourquoi l'exécution du code n'atteint-elle jamais le bloc catch (java)?
Voici la méthode, où l'exception est levée:
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);
}
}
Ici j'essaie en vain d'attraper l'exception levée de méthode d'exécution en classe 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");
}
La sortie est "test2", et l'exécution du code n'atteint jamais l'un des blocs catch. Qu'est-ce que je fais de mal?
UserHelper.importUsers (données, admin); ne lève pas une exception que! –