Recommandé, 2024

Choix De L'Éditeur

Différence entre jets et jets en Java

Le lancer et les lancers sont les mots-clés utilisés dans la gestion des exceptions. Le mot-clé throw est utilisé pour transférer manuellement l'instance de l'exception créée par le programmeur à la machine virtuelle Java. Le mot clé throws utilisé pour transférer la responsabilité de la gestion de l'exception s'est produit dans la méthode à la méthode de l'appelant. La différence fondamentale entre les lancers et les lancers réside dans le fait que le mot-clé throw utilise l'objet exception alors que le mot-clé throws utilise le nom des classes d'exception.

Tableau de comparaison

Base de comparaisonjeterjette
De baseLe mot clé throw transfère manuellement notre objet exception créé vers la machine virtuelle Java.Le mot clé throws permet de déléguer la responsabilité de la gestion des exceptions à l'appelant de la méthode.
Syntaxethrow Throwable-instance;return_type nom_méthode (liste_paramètres) lève la liste ExceptionClass_list
{
// corps de méthode
}
Suivi parLe mot-clé throw est suivi de l'objet exception.Le mot clé throws est suivi de la liste des classes d'exceptions pouvant se produire dans la méthode.
Nombre d'exceptions levéesLe mot clé throw peut lancer une seule exception.Le mot clé throws peut déclarer plusieurs classes d'exceptions séparées par une virgule.

Définition du lancer

Le mot clé « throw » est utilisé pour transférer manuellement notre instance d'exception créée à la JVM (Java Virtual Machine). Si «throw» n'est pas utilisé pour renvoyer une instance d'exception et que l'exception se produit, le système d'exécution renvoie en interne l'instance d'exception à la machine virtuelle Java et le programme se termine anormalement. La forme générale du mot clé throw est:

 jeter Throwable_instance; 

Au-dessus de Throwable_instance doit être un objet de la classe Throwable. Les types primitifs tels que int, float ou char et l'occurrence de classe non-throwable ne peuvent pas être générés à l'aide du mot-clé throw.

Prenons un exemple pour comprendre le mot-clé jeté.

 Test de classe {public static void main (String [] args) {lance un nouvel ArithmeticException ("/ by zero"); }} 

Dans le code ci-dessus, le mot-clé lève une instance de la classe d'exception «ArithmeticException». Si le mot-clé throw n'avait pas encore été utilisé, la méthode main () aurait créé en interne un objet exception transmis à la machine virtuelle Java.

Les points à retenir sur le mot clé jeté:

  • Il transfère manuellement l'objet exception à la machine virtuelle Java.
  • Il est préférable de l'utiliser pour les exceptions définies par l'utilisateur ou les exceptions personnalisées.
  • Si la mémoire n'est pas allouée à l'objet exception levé par le mot-clé throw, il se produit une exception d'exécution, NullPointerException.
  • Le mot-clé throw arrête l'exécution du programme immédiatement après son apparition. nous ne pouvons écrire directement aucune déclaration après la déclaration de projection. Si nous écrivons une déclaration directement après une instruction throw, le compilateur affichera une erreur, une instruction inaccessible pendant la compilation.
  • Seuls les objets de la classe Throwable peuvent être lancés à l'aide du mot-clé throw. Si l'objet levé n'est pas un objet de la classe Throwable, nous obtenons une erreur de compilation «Un type incompatible a été trouvé. . requis java.lang.Throwable ”

Remarque:

Le mot clé throw est utilisé en C ++, JAVA, C # pour lever manuellement une exception.

Définition du lancer

Le mot clé " throws " permet de déléguer la responsabilité de la gestion de l'exception survenue dans la méthode à la méthode de l'appelant. La méthode appelante est responsable du traitement de l'exception. Il peut s'agir d'une autre méthode ou de la machine virtuelle Java. Il déclare la liste des classes d'exceptions pouvant se produire dans la méthode.

L'utilisation du mot clé throws convainc le compilateur que l'exception survenue dans la méthode doit être gérée par la méthode de l'appelant. Aucune erreur de compilation ne se produit. Cependant, la méthode de l'appelant doit gérer l'exception ou déléguer la responsabilité de gérer l'exception à sa méthode de hiérarchie. Lorsque l'exception d'exécution se produit, même après l'utilisation du mot clé throws, elle n'empêche pas la fin anormale du programme. Si la méthode de l'appelant est main (), la machine virtuelle Java par défaut gère l'exception.

La forme générale du mot-clé lancers est la suivante:

 return_type nom_méthode (liste_paramètres) lève exceptionClass_list {// corps de la méthode} 

Nous pouvons voir que le mot clé throws apparaît après la signature de la méthode et qu'il peut contenir la liste des classes d'exceptions pouvant figurer dans la méthode. La liste des classes d'exception écrites après le mot clé est séparée par une virgule.

Prenons un exemple pour comprendre le mot-clé lancers.

 calss Test {public static void main (String [] args) lève InterruptedException {thread sleep (10000); }} 

Dans le code ci-dessus, le thread principal est mis en veille pendant un certain temps à l'aide de la méthode sleep (). Maintenant, lorsque la méthode principale est en veille, il est possible que les autres threads interrompent le thread principal. Mais, le mot clé throws est utilisé après la signature de la méthode main (), le programme se compilerait donc facilement. Le mot clé throws déclare la classe d'exception vérifiée InterruptedException. Désormais, si un autre thread interrompt le thread principal pendant l'exécution, le mot clé throws transmettra cette exception à l'appelant de la méthode main (), à savoir JVM. La machine virtuelle Java mettrait fin au programme de manière anormale.

Les points à retenir sur le mot clé jette:

  • Le mot clé throws est uniquement utilisé pour déclarer les classes d'exceptions vérifiées. L'utilisation du mot clé throws pour une exception non contrôlée n'a aucun impact.
  • Si la méthode ne veut pas gérer l'exception par elle-même, elle délègue cette exception à la méthode de l'appelant de cette classe à l'aide du mot clé throws.
  • Son utilisation ne permet que la compilation en douceur du programme.
  • Si une exception se produit au moment de l'exécution, le programme se termine de manière anormale, même après l'utilisation du mot clé throws.
  • Il est recommandé d'utiliser try / catch block pour terminer normalement le programme si une exception se produit au moment de l'exécution.

Remarque:

Le mot clé est utilisé uniquement en Java. C ++ et C # n'utilisent pas le mot clé throws.

Principales différences entre les lancers et les lancers

  1. Le mot clé throw indique la responsabilité de la gestion des exceptions vers la machine virtuelle Java manuellement, tandis que le mot clé lève la responsabilité de la gestion des exceptions vers la méthode du code du code de l'appelant dans lequel une exception s'est produite.
  2. Le mot clé throw est suivi de l'objet exception transmis à la machine virtuelle Java. D'autre part, le mot clé throws est suivi des classes d'exception pouvant se produire dans la méthode.
  3. Le mot-clé throw peut lancer un seul objet exception à la fois, tandis que le mot-clé throws peut déclarer plusieurs classes d'exceptions séparées par une virgule à la fois.

Conclusion:

Le mot-clé throw est mieux utilisé pour l'exception personnalisée. Le bloc try / catch convient le mieux pour gérer les exceptions par rapport au mot clé jeté.

Top