Quelle est la différence entre la clause try-catch et throw. Quand les utiliser?
S'il vous plaît, faites-moi savoir .
try
exécutera un code sensible qui peut lever des exceptionscatch
sera utilisé chaque fois qu'une exception (du type intercepté) est levée dans le bloc tryfinally
est appelé dans tous les cas après les blocs try/catch. Même si l'exception n'est pas interceptée ou si vos blocs précédents interrompent le flux d'exécution.throw
vous permettra de lever une exception (qui interrompra le flux d'exécution et pourra être interceptée dans un bloc catch
).throws
dans le prototype de méthode est utilisé pour spécifier que votre méthode peut lever des exceptions du type spécifié. C'est utile lorsque vous avez coché une exception (exception que vous devez gérer) que vous ne voulez pas intercepter dans votre méthode actuelle.Ressources:
Sur une autre note, vous devriez vraiment accepter certaines réponses. Si quelqu'un rencontre les mêmes problèmes que vous et trouve vos questions, il/elle sera heureux de voir directement la bonne réponse à la question.
Si vous exécutez l'exemple suivant, vous saurez la différence entre un bloc Throw et un bloc Catch.
De façon générale:
Le bloc catch gérera l'exception
jette transmettra l'erreur à son appelant.
Dans l'exemple suivant, l'erreur se produit dans le throwsMethod () mais elle est gérée dans le catchMethod ().
public class CatchThrow {
private static void throwsMethod() throws NumberFormatException {
String intNumber = "5A";
Integer.parseInt(intNumber);
}
private static void catchMethod() {
try {
throwsMethod();
} catch (NumberFormatException e) {
System.out.println("Convertion Error");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
catchMethod();
}
}
La clause try/catch and throw est à des fins différentes. Ils ne sont donc pas alternatifs mais complémentaires.
Si vous avez levé une exception vérifiée dans votre code, elle devrait se trouver à l'intérieur de certains try/catch dans les codes appelant la hiérarchie.
Inversement, vous n'avez besoin du bloc try/catch que s'il existe une clause throw dans le code (votre code ou l'appel d'API) qui lève l'exception cochée.
Parfois, vous souhaiterez peut-être lever une exception si une condition particulière s'est produite que vous souhaitez gérer dans le bloc de code appelant et dans certains cas gérer un bloc de capture d'exception et renvoyer une exception identique ou différente à gérer dans le bloc appelant.
Tous ces mots clés try, catch et throw sont liés au concept de gestion des exceptions en Java. Une exception est un événement qui se produit pendant l'exécution de programmes. L'exception perturbe le flux normal d'une application. La gestion des exceptions est un mécanisme utilisé pour gérer l'exception afin que le flux normal d'application puisse être maintenu. Le bloc Try-catch est utilisé pour gérer l'exception. Dans un bloc try, nous écrivons le code qui peut lever une exception et dans le bloc catch, nous écrivons du code pour gérer cette exception. Le mot clé Throw est utilisé pour lever explicitement une exception. Généralement, le mot clé throw est utilisé pour lancer des exceptions définies par l'utilisateur.
Pour plus de détails, visitez Tutoriel Java pour les débutants .
D'autres ont déjà donné des réponses approfondies, mais si vous cherchez encore plus d'informations, les tutoriels Oracle Java sont toujours une bonne ressource. Voici le tutoriel Java pour les exceptions, qui couvre toutes vos questions de manière très détaillée; https://docs.Oracle.com/javase/tutorial/essential/exceptions/index.html