Maison Java javaDidacticiel Exceptions Java vérifiées et non vérifiées

Exceptions Java vérifiées et non vérifiées

Dec 28, 2016 am 10:45 AM

Les exceptions Java sont divisées en deux types, les exceptions vérifiées et les exceptions non vérifiées. Un autre nom est les exceptions et les erreurs.

En termes simples, les vérifications peuvent être récupérées pendant l'exécution, tandis que les exceptions non vérifiées sont des erreurs qui ne peuvent pas être gérées.

exception cochée :

signifie invalide et ne peut pas être prédit dans le programme. Par exemple, entrée utilisateur non valide, fichier n'existe pas, erreur de lien réseau ou base de données. Ce sont toutes des raisons externes et ne peuvent pas être contrôlées au sein du programme.

doit être géré explicitement dans le code. Par exemple, effectuez un traitement de bloc try-catch ou ajoutez une description de lancement à la méthode pour lever l'exception vers la couche supérieure de la pile d'appels.

Hérite de java.lang.Exception (sauf java.lang.RuntimeException).

exception non cochée :

indique une erreur, une erreur logique dans le programme. Est une sous-classe de RuntimeException, telle que IllegalArgumentException, NullPointerException et IllegalStateException.

Il n'est pas nécessaire d'intercepter explicitement les exceptions non vérifiées dans le code pour la gestion.

Hérite de java.lang.RuntimeException (et java.lang.RuntimeException hérite de java.lang.Exception).

L'exception vérifiée en Java doit être explicitement interceptée ou renvoyée par try-catch dans le code. Si vous n'avez pas besoin de gérer cette exception, vous pouvez simplement lancer à nouveau l'exception. Cette exception existe. L'inconvénient est que de nombreuses personnes sont habituées à écrire un bloc catch vide directement dans le code. Cela rend non seulement le code redondant et "laid", mais pose également des problèmes de débogage et augmente la difficulté de maintenance du code. Ainsi, certaines personnes disent que vérifié rend le code verbeux et que les blocs catch vides n'ont aucun sens, donc les exceptions vérifiées devraient être supprimées du standard Java. Par exemple, il n'y a pas de concept d'exceptions vérifiées en C#, et C# ne force pas la capture explicite de. exceptions.

La raison pour laquelle les exceptions Java sont divisées en ces deux types devrait être due aux considérations suivantes :

Les exceptions vérifiées peuvent aider les développeurs à comprendre quelles lignes peuvent provoquer des exceptions, car l'API de Java a été expliquée. quelles méthodes peuvent être appelées pour lever une exception. S'il n'est pas traité, la compilation échouera. Dans une certaine mesure, cette approche peut éviter certaines erreurs dans le programme.

Deux exemples simples

  1. exception vérifiée

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class Main {
public static void main(String[] args) {
File f = new File("C:\test.txt");
FileReader r = new FileReader(f); //A
BufferedReader br = new BufferedReader(r);
br.readLine(); //B
br.close(); //C
}
}
Copier après la connexion

Ce code ne peut pas être compilé car A , les lignes B et C lancera IOException. Vous devez mettre ce code dans un bloc try-catch, ou ajouter throws IOException à la méthode principale pour compiler.

2. Exception non vérifiée

public class Main {
public static void main(String[] args) {
int a = 0;
int b = 100;
int c = b/a;
}
}
Copier après la connexion

Peut être compilée, mais une erreur sera signalée lors de son exécution

Exception in thread “main” java.lang.ArithmeticException: / by zero
at Main.main(Main.java:13)
Copier après la connexion

ArithmeticException est une exception non vérifiée.

Exception personnalisée

1. exception vérifiée

Classe d'exception personnalisée InvalidUrlException

public class InvalidUrlException extends Exception {
public InvalidUrlException(String s){
super(s);
}
}
Copier après la connexion
Copier après la connexion
public class Main {
public static void getRemoteData(String url) throws InvalidUrlException{
if(isValidUrl(url)){
//获取远程数据
}
else
throw new InvalidUrlException("Invalid URL: " + url);
}
public static boolean isValidUrl(String url){
.... //验证URL是否有效
}
public static void main(String[] args) {
getRemoteData(args[0]);
}
}
Copier après la connexion

Si getRemoteData est appelé dans la méthode principale, il y a Il existe deux méthodes, l'une est try-catch et l'autre consiste à ajouter directement une exception InvalidUrlException à main.

2. exception non vérifiée

Si vous remplacez InvalidUrlException par extends RuntimeException

public class InvalidUrlException extends Exception {
public InvalidUrlException(String s){
super(s);
}
}
Copier après la connexion
Copier après la connexion

, alors main n'a pas besoin d'ajouter de lancers ou de try-catch.

Sélectionner une exception cochée ou non cochée ?

Certains livres Java recommandent d'utiliser des gestionnaires d'exceptions vérifiés pour toutes les exceptions récupérables et des exceptions non vérifiées pour les erreurs irrécupérables. Mais en fait, la plupart des exceptions Java héritées de RuntimeException peuvent également être récupérées dans le programme. Par exemple, NullPointerException, IllegalArgumentExceptions, les exceptions de division par 0, etc. peuvent être capturées et traitées pour permettre au programme de continuer à s'exécuter. Seules certaines circonstances particulières perturberont l'exécution du programme, comme la lecture du fichier de configuration au démarrage. Si le fichier de configuration n'existe pas ou s'il y a une erreur grave, le programme doit se terminer.

Voici quelques arguments pour et contre les exceptions vérifiées :

Le compilateur force à intercepter ou à lancer des exceptions non vérifiées afin que les développeurs se souviennent toujours de gérer les exceptions.

Les méthodes qui lancent des exceptions vérifiées doivent déclarer les lancers. Les lancers deviennent une partie de la méthode ou de l'interface, ce qui entraîne des inconvénients pour les versions ultérieures lors de l'ajout ou de la modification d'exceptions de méthode.

Les exceptions non vérifiées n'ont pas besoin d'être traitées explicitement mais rendent la gestion des exceptions difficile.

Lors de l'appel d'une méthode d'exception vérifiée, vous devez gérer l'exception de cette méthode, ce qui rend le code de l'appelant supérieur déroutant.

C'est à vous de décider si vous choisissez coché ou décoché. Il est difficile de dire lequel est définitivement correct, et vice versa. Parmi les langages les plus populaires à l'heure actuelle, Java semble être le seul à prendre en charge les exceptions vérifiées, et les autres langages n'ont que des exceptions non vérifiées.

Ce qui précède est le contenu des exceptions cochées et non cochées de Java. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

PHP vs Python: comprendre les différences PHP vs Python: comprendre les différences Apr 11, 2025 am 12:15 AM

PHP et Python ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1.Php convient au développement Web, avec une syntaxe simple et une efficacité d'exécution élevée. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et des bibliothèques riches.

PHP: un langage clé pour le développement Web PHP: un langage clé pour le développement Web Apr 13, 2025 am 12:08 AM

PHP est un langage de script largement utilisé du côté du serveur, particulièrement adapté au développement Web. 1.Php peut intégrer HTML, traiter les demandes et réponses HTTP et prend en charge une variété de bases de données. 2.PHP est utilisé pour générer du contenu Web dynamique, des données de formulaire de traitement, des bases de données d'accès, etc., avec un support communautaire solide et des ressources open source. 3. PHP est une langue interprétée, et le processus d'exécution comprend l'analyse lexicale, l'analyse grammaticale, la compilation et l'exécution. 4.PHP peut être combiné avec MySQL pour les applications avancées telles que les systèmes d'enregistrement des utilisateurs. 5. Lors du débogage de PHP, vous pouvez utiliser des fonctions telles que error_reportting () et var_dump (). 6. Optimiser le code PHP pour utiliser les mécanismes de mise en cache, optimiser les requêtes de base de données et utiliser des fonctions intégrées. 7

Créer l'avenir : programmation Java pour les débutants absolus Créer l'avenir : programmation Java pour les débutants absolus Oct 13, 2024 pm 01:32 PM

Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.

See all articles