web-dev-qa-db-fra.com

Différence entre try-catch et throw java

Quelle est la différence entre la clause try-catch et throw. Quand les utiliser?

S'il vous plaît, faites-moi savoir .

52
user393043
  • Le bloc try exécutera un code sensible qui peut lever des exceptions
  • Le bloc catch sera utilisé chaque fois qu'une exception (du type intercepté) est levée dans le bloc try
  • Le bloc finally 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.
  • Le mot clé throw vous permettra de lever une exception (qui interrompra le flux d'exécution et pourra être interceptée dans un bloc catch).
  • Le mot clé 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.

78
Colin Hebert

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();
}

}
29
user1864519

La clause try/catch and throw est à des fins différentes. Ils ne sont donc pas alternatifs mais complémentaires.

  1. 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.

  2. 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.

6
Mahesh

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 .

4
Ellen gomez

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

1
BNeumann