1. Implémentation et classification des exceptions
1. Examinez d'abord le schéma de structure de l'exception. class
L'image ci-dessus peut simplement montrer le diagramme de structure d'implémentation de la classe d'exception. Bien sûr, l'image ci-dessus ne représente pas toutes les exceptions. eux-mêmes. L'image ci-dessus est suffisante pour nous aider à expliquer et à comprendre la mise en œuvre des exceptions :
Tutoriels vidéo gratuits liés à Java : Vidéo pédagogique Java
Toutes les exceptions sont héritées de. Throwable C'est l'ancêtre commun de toutes les anomalies.
2. Throwable
a deux sous-catégories, Error
et Exception
.
Où Error est une erreur. Toutes les erreurs de compilation et les erreurs système sont renvoyées via Error. Ces erreurs indiquent que l'échec se produit dans la machine virtuelle elle-même ou lorsque la machine virtuelle tente d'exécuter l'application, comme une erreur d'exécution de la machine virtuelle Java (Virtual MachineError
), une erreur de définition de classe (NoClassDefFoundError
), etc.
Ces erreurs sont incontrôlables car elles échappent aux capacités de contrôle et de traitement de l'application, et la plupart d'entre elles sont des conditions qui ne sont pas autorisées à se produire lorsque le programme est en cours d'exécution. Pour une application bien conçue, même si une erreur se produit, aucune tentative ne doit être faite pour gérer l’exception qu’elle a provoquée. En Java, les erreurs sont décrites via des sous-classes d'Error.
3.Exception
est une autre sous-classe d'exceptions très importante. Les exceptions spécifiées sont des exceptions que le programme lui-même peut gérer.
La différence entre les exceptions et les erreurs est que les exceptions peuvent être gérées, mais pas les erreurs.
4.Checked Exception
Les exceptions vérifiables, qui sont très couramment utilisées lors du codage, toutes les exceptions vérifiées doivent être gérées dans le code. Leur apparition est prévisible, il s'agit d'une situation normale et peut être gérée de manière raisonnable, comme IOException
, ou certaines exceptions personnalisées. À l'exception de RuntimeException
et de ses sous-classes, ce sont toutes des exceptions vérifiées.
5.Unchecked Exception
RuntimeException
et ses sous-classes sont toutes des exceptions non contrôlées. Par exemple, exception de pointeur nul NPE, exception arithmétique lorsque le diviseur est 0 ArithmeticException
, etc. Ce type d'exception se produit pendant l'exécution et ne peut pas être intercepté et traité à l'avance. L'erreur est également une exception non vérifiée et ne peut pas être traitée à l'avance.
2. Gestion des exceptions
La gestion des exceptions dans le code est en fait la gestion des exceptions vérifiables.
1. Traité via le bloc d'instruction try...catch :
try { // 程序代码 }catch(ExceptionName e1) { //Catch 块 }
L'instruction Catch contient une déclaration du type d'exception à intercepter. Lorsqu'une exception se produit dans le bloc de code protégé, le bloc catch suivant le try est vérifié.
Si l'exception qui se produit est contenue dans un bloc catch, l'exception sera transmise au bloc catch, ce qui revient à passer un paramètre à une méthode.
2. De plus, vous pouvez également le lancer directement sans le traiter à un emplacement spécifique, puis le gérer via des lancers/lancements vers la couche supérieure. Plus précisément, si une méthode n'intercepte pas une exception vérifiée, alors la méthode doit utiliser le mot-clé throws pour déclarer.
Le mot-clé throws est placé à la fin de la signature de la méthode. Vous pouvez également utiliser le mot-clé throw pour lever une exception, qu'elle soit nouvellement instanciée ou qu'elle vienne d'être interceptée.
La déclaration de méthode suivante lève une RemoteException :
import java.io.*; public class className { public void deposit(double amount) throws RemoteException { // Method implementation throw new RemoteException(); } //Remainder of class definition }
3. mot-clé enfin
Le mot-clé enfin est utilisé pour créer un bloc de code qui est exécuté après le bloc de code try. Qu'une exception se produise ou non, le code du bloc final sera toujours exécuté. Dans le bloc de code final, vous pouvez exécuter des instructions de nettoyage telles que des types de nettoyage.
Enfin, le bloc de code apparaît à la fin du bloc de code catch, la syntaxe est la suivante :
try{ // 程序代码 }catch(异常类型1 异常的变量名1){ // 程序代码 }catch(异常类型2 异常的变量名2){ // 程序代码 }finally{ // 程序代码 }
Tutoriels d'articles liés à Java recommandés : Programme d'entrée Java
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!