Maison Java javaDidacticiel Quels sont les types d'exceptions en Java ?

Quels sont les types d'exceptions en Java ?

Jan 19, 2019 am 10:26 AM

Les erreurs sont le fléau des utilisateurs et des programmeurs. Les développeurs ne veulent évidemment pas que leurs programmes tombent à chaque tour, et les utilisateurs sont maintenant tellement habitués à avoir des bugs dans leurs programmes qu'ils acceptent à contrecœur de payer le prix d'un logiciel qui est presque certain d'avoir au moins un bug.

Quels sont les types d'exceptions en Java ?

Java est conçu pour donner aux programmeurs la possibilité de concevoir une application sans bug. Lorsqu'une application interagit avec des ressources ou des utilisateurs, le programmeur peut être conscient des exceptions pouvant être gérées. Malheureusement, il existe des exceptions sur lesquelles le programmeur n'a aucun contrôle ou qu'il ignore simplement. En bref, toutes les exceptions ne sont pas identiques, les programmeurs doivent donc en considérer plusieurs types.

Les exceptions sont des événements qui empêchent un programme de fonctionner dans son exécution prévue. Il existe trois types d'exceptions : les exceptions vérifiées, les erreurs et les exceptions d'exécution.

L'exception vérifiée

Une exception vérifiée est une exception qu'une application Java devrait être capable de gérer. Par exemple, si l'application lit les données d'un fichier, elle devrait être capable de gérer FileNotFoundException. Après tout, rien ne garantit que le fichier attendu apparaîtra là où il est censé se trouver. Tout peut arriver sur le système de fichiers et l'application n'en sait rien.

Regardons de plus près cet exemple. Supposons que nous utilisions la classe FileReader pour lire des fichiers de caractères. Si vous jetez un œil à la définition du constructeur FileReader dans l'API Java, vous trouverez sa signature de méthode :

public FileReader(String fileName)
throws FileNotFoundException
Copier après la connexion

Comme vous pouvez le voir, le constructeur indique explicitement que le constructeur FileReader peut lancer FileNotFoundException. Cela est logique puisque la chaîne du nom de fichier est susceptible d'être erronée de temps en temps. Regardez le code suivant :

public static void main(String[] args){
FileReader fileInput = null;
//打开输入文件
fileInput = new FileReader("Untitled.txt");
}
Copier après la connexion

Syntaxiquement, ces instructions sont correctes, mais ce code ne sera jamais compilé. Le compilateur sait que le constructeur FileReader peut lever FileNotFoundException, et c'est au code appelant de gérer cette exception. Il existe deux options - Premièrement, nous pouvons transmettre des exceptions en spécifiant une clause throw :

public static void main(String[] args) throws FileNotFoundException{
FileReader fileInput = null;
//打开输入文件
fileInput = new FileReader("Untitled.txt");
}
Copier après la connexion

Ou nous pouvons gérer les exceptions :

public static void main(String[] args){
FileReader fileInput = null;
try
{
//打开输入文件
fileInput = new FileReader("Untitled.txt");
}
catch(FileNotFoundException ex)
{
//告诉用户去找文件
}
}
Copier après la connexion

Les applications Java bien écrites devraient être capables de gérer les exceptions vérifiées.

Erreurs

Le deuxième type d'exception est appelé une erreur. Lorsqu'une exception se produit, la JVM crée un objet d'exception. Ces objets sont dérivés de classes jetables. La classe jetable a deux sous-classes principales : Error et Exception. La classe Error représente les exceptions qui sont peu susceptibles d'être gérées par l'application.

Ces exceptions sont considérées comme rares. Par exemple, une JVM peut manquer de ressources parce que le matériel ne peut pas gérer tous les processus qu'il doit gérer. Les applications peuvent détecter les erreurs et en informer l'utilisateur, mais elles doivent généralement s'arrêter jusqu'à ce que le problème sous-jacent soit résolu.

Exceptions d'exécution

Les exceptions d'exécution se produisent simplement parce que le programmeur a commis une erreur. Vous avez écrit le code et tout ira bien pour le compilateur. Lorsque vous exécuterez le code, il plantera car il a tenté d'accéder à un élément du tableau qui n'existe pas ou une erreur logique a provoqué l'appel d'une méthode avec une valeur nulle. valeur. Ou n'importe quel nombre d'erreurs qu'un programmeur pourrait commettre. Mais ce n'est pas grave, nous trouvons ces exceptions grâce à des tests exhaustifs, n'est-ce pas ?

Les erreurs et les exceptions d'exécution entrent dans la catégorie des exceptions non vérifiées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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)

Comment fonctionne le mécanisme de chargement de classe de Java, y compris différents chargeurs de classe et leurs modèles de délégation? Comment fonctionne le mécanisme de chargement de classe de Java, y compris différents chargeurs de classe et leurs modèles de délégation? Mar 17, 2025 pm 05:35 PM

Le chargement de classe de Java implique le chargement, la liaison et l'initialisation des classes à l'aide d'un système hiérarchique avec Bootstrap, Extension et Application Classloaders. Le modèle de délégation parent garantit que les classes de base sont chargées en premier, affectant la classe de classe personnalisée LOA

Comment implémenter la mise en cache à plusieurs niveaux dans les applications Java à l'aide de bibliothèques comme la caféine ou le cache de goyave? Comment implémenter la mise en cache à plusieurs niveaux dans les applications Java à l'aide de bibliothèques comme la caféine ou le cache de goyave? Mar 17, 2025 pm 05:44 PM

L'article examine la mise en œuvre de la mise en cache à plusieurs niveaux en Java à l'aide de la caféine et du cache de goyave pour améliorer les performances de l'application. Il couvre les avantages de configuration, d'intégration et de performance, ainsi que la gestion de la politique de configuration et d'expulsion le meilleur PRA

Comment puis-je utiliser JPA (Java Persistance API) pour la cartographie relationnelle des objets avec des fonctionnalités avancées comme la mise en cache et le chargement paresseux? Comment puis-je utiliser JPA (Java Persistance API) pour la cartographie relationnelle des objets avec des fonctionnalités avancées comme la mise en cache et le chargement paresseux? Mar 17, 2025 pm 05:43 PM

L'article discute de l'utilisation de JPA pour la cartographie relationnelle des objets avec des fonctionnalités avancées comme la mise en cache et le chargement paresseux. Il couvre la configuration, la cartographie des entités et les meilleures pratiques pour optimiser les performances tout en mettant en évidence les pièges potentiels. [159 caractères]

Comment utiliser Maven ou Gradle pour la gestion avancée de projet Java, la création d'automatisation et la résolution de dépendance? Comment utiliser Maven ou Gradle pour la gestion avancée de projet Java, la création d'automatisation et la résolution de dépendance? Mar 17, 2025 pm 05:46 PM

L'article discute de l'utilisation de Maven et Gradle pour la gestion de projet Java, la construction de l'automatisation et la résolution de dépendance, en comparant leurs approches et leurs stratégies d'optimisation.

Mar 17, 2025 pm 05:45 PM

L'article discute de la création et de l'utilisation de bibliothèques Java personnalisées (fichiers JAR) avec un versioning approprié et une gestion des dépendances, à l'aide d'outils comme Maven et Gradle.

See all articles