Tout code Java peut lancer des exceptions, telles que: code écrit par vous-même, code du package de l'environnement de développement Java ou système d'exécution Java. Peu importe de qui il s'agit, vous pouvez lancer une exception à travers la déclaration Java Throw. Toute exception projetée à partir de la méthode doit être utilisée avec la clause des lancers.
1. lance l'exception de lancer
Si une méthode peut avoir une exception mais n'a pas la possibilité de gérer une telle exception, vous pouvez utiliser la clause des lancers pour déclarer l'exception jetée à la déclaration de la méthode. Par exemple, une voiture peut échouer lors de la course et la voiture elle-même ne peut pas gérer cette panne, alors laissez le conducteur y faire face.
L'instruction lance est utilisée pour déclarer le type d'exception à lancer lorsque la méthode est définie. Plusieurs exceptions peuvent être divisées à l'aide de virgules. Le format de syntaxe de l'instruction des lancers est:
MethodName lance l'exception1, exception2, .., exceptionn
{
}
lance après le nom de la méthode exception1, exception2,…, exceptionn est la liste des exceptions à lancer. Lorsqu'une méthode lance une liste d'exceptions d'exceptions, la méthode ne gérera pas les exceptions de ces types et de leurs types de sous-classe, mais sera jetée à la méthode qui appelle la méthode et sera gérée par elle. Par exemple:
Importer java.lang.Exception; classe publique TestException {static void pop () lève NEGATIVEARRAYSIZEException {// Définissez la méthode et lancez NegatiVEARRAYSIZEException OneXception int [] arr = new int [-3]; (String [] Args) {// Méthode principale essai {// TRY STACK GANDE Informations d'exception pop (); exception lancée "); // Informations d'exception de sortie}}}
Après avoir lancé l'exception à l'appelant à l'aide du mot-clé lancers, si l'appelant ne veut pas gérer l'exception, vous pouvez continuer à le lancer, mais en fin de compte, il doit y avoir un appelant qui peut gérer l'exception.
La méthode POP ne gère pas l'exception NegatiVEArraySizeException, mais est gérée par la fonction principale.
La règle des lancers lance des exceptions:
1) S'il s'agit d'une exception non contrôlée, c'est-à-dire une erreur, RuntimeException ou leurs sous-classes, vous pouvez déclarer l'exception à lancer sans utiliser le mot-clé lancers, et la compilation passera en douceur, mais elle sera exécutée par le système pendant le système pendant Exécution.
2) Toutes les exceptions vérifiées qui peuvent être lancées par la méthode doivent être déclarées. Autrement dit, si une méthode peut avoir une exception enregistrable, elle sera soit rattrapée avec une instruction TRY-Catch ou déclaré avec une clause de lancers, sinon elle entraînera une erreur de compilation.
3) Seulement lorsqu'une exception est lancée, l'appelant de la méthode doit gérer ou remédier à l'exception. Lorsque l'appelant de méthode n'est pas en mesure de gérer l'exception, il devrait continuer à le lancer au lieu de l'avaler entier.
4) La méthode d'appel doit suivre toutes les règles de gestion et de déclaration d'exception vérifiables. Si une méthode est écrasée, les exceptions différentes de la méthode écrasée ne peuvent pas être déclarées. Toute exception déclarée doit être une sous-classe similaire ou une sous-classe de l'exception déclarée par la méthode remplacée.
Par exemple:
La base pour déterminer qu'une exception peut se produire dans une méthode est la suivante:
1) Il y a une déclaration de lancer dans la méthode. Par exemple, le bloc de code Catch de la méthode de méthode 7 () ci-dessus a une instruction THOR.
2) D'autres méthodes sont appelées et d'autres méthodes utilisent la clause de lancement pour déclarer une exception à lancer. Par exemple, la méthode Method3 () appelle la méthode Method1 (), et la méthode Method1 () déclare qu'une ioException est lancée, donc une ioException peut se produire dans la méthode Method3 ().
2. Utilisez le lancer pour lancer une exception
Le lancer apparaît toujours dans le corps de la fonction et est utilisé pour lancer une exception de type jetable. Le programme se terminera immédiatement après l'instruction Throw, l'instruction après qu'il ne peut pas être exécuté, puis dans tous les blocs d'essai qui le contiennent (peut-être dans la fonction d'appel de niveau supérieur) recherchent des blocs d'essai contenant la clause Catch qui la correspond à partir du à l'envers.
Nous savons que les exceptions sont des objets d'instance de classe d'exception, et nous pouvons créer des objets d'instance de classe d'exception à lancer dans l'instruction Throw. Le format de syntaxe de cette déclaration est:
Jetez un nouveau nom d'exception;
Par exemple, lancez un objet d'exception de la classe IOException:
Jetez une nouvelle ioException;
Il convient de noter que je lance uniquement des objets d'instance qui peuvent lancer des classes jetables ou sous-classes. L'opération suivante est incorrecte:
lancer une nouvelle chaîne ("exception");
En effet, String n'est pas une sous-classe de la classe jetable.
Si une exception de vérification est lancée, vous devez également déclarer le type d'exception que la méthode peut jeter l'en-tête de la méthode. L'appelant de cette méthode doit également vérifier la gestion de l'exception lancée.
Si toutes les méthodes lancent la couche d'exception acquise par calque, le JVM finira par le traiter, et le traitement est également très simple, qui consiste à imprimer le message d'exception et les informations de pile. Si une erreur ou RuntimeException est lancée, l'appelant de la méthode a la possibilité de gérer l'exception.
Test de package; 0 lancez une nouvelle MyException ("Le diviseur ne peut pas être un nombre négatif"); ; .out.println (e. getMessage ()); Catch (sauf sur e) {// gérer d'autres exceptions System.out.println ("Autre exception s'est produite dans le programme"); Message de chaîne;