Java: Lancer Une Exception Tue-T-Il Sa Méthode?
Par exemple:
public String showMsg(String msg) throws Exception {
if(msg == null) {
throw new Exception("Message is null");
}
//Create message anyways and return it
return "DEFAULT MESSAGE";
}
String msg = null;
try {
msg = showMsg(null);
} catch (Exception e) {
//I just want to ignore this right now.
}
System.out.println(msg); //Will this equal DEFAULT MESSAGE or null?
J'ai besoin d'ignorer essentiellement les exceptions dans certains cas (généralement lorsque plusieurs exceptions peuvent être lancées à partir d'une méthode et que l'on n'a pas d'importance dans un cas particulier) donc malgré l'exemple pathétique que j'ai utilisé pour simplifier le retour dans showMsg fonctionnera-t-il toujours ou le lancer renvoie-t-il réellement la méthode?
1 réponses
L'instruction return
ne s'exécutera pas si l'exception est levée. Lancer une exception provoque le flux de contrôle de votre programme pour aller immédiatement au gestionnaire de l'exception (*), en sautant toute autre chose de la manière. Donc, en particulier, msg
est null
dans votre rapport d'impression si une exception a été levée par showMsg
.
( * ) sauf que les instructions dans les blocs finally
seront exécutées, mais ce n'est pas vraiment pertinent ici.