Qu'est-ce qu'une exception en Java ?
Qu'est-ce qu'une exception ?
Un code mal structuré ne peut pas s'exécuter, c'est la philosophie de base de Java.
Le moment idéal pour trouver les erreurs est au moment de la compilation. Cependant, le compilateur ne peut pas trouver toutes les erreurs et les problèmes restants doivent être résolus pendant l'exécution du programme. Cela nécessite que l'erreur puisse transmettre les informations appropriées à un destinataire spécifique pour traitement d'une manière ou d'une autre.
Le but de la gestion des exceptions en Java est de simplifier la génération de programmes volumineux et fiables en utilisant une petite quantité de code. De cette façon, il n'y a pas d'erreurs non gérées dans votre application, et cela apporte également une évidence. avantage : complexité réduite du code de gestion des erreurs.
Anormal, au sens littéral, signifie inattendu. Pour le comprendre au niveau du code, cela empêche la méthode ou la portée actuelle de continuer à s'exécuter. 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.
En Java, les exceptions sont gérées comme des objets et leur classe de base est Throwable.
Types d'exceptions en Java
Java dérive les exceptions et les erreurs directement de Throwable. L'exception est le type de base qui peut être généré. Des exceptions de type exception peuvent être générées dans les bibliothèques de classes Java, les méthodes et les échecs d'exécution. L'exception représente une exception récupérable, qui peut être interceptée par le compilateur ; l'erreur représente une erreur de compilation et du système, indiquant qu'une erreur grave s'est produite lors du fonctionnement du système, ce qui est une erreur irrécupérable puisqu'il s'agit d'une erreur grave. le niveau JVM, donc cette erreur entraîne l'arrêt de l'exécution du programme. Les exceptions sont divisées en exceptions vérifiées et exceptions d'exécution.
Le diagramme de hiérarchie structurelle de la classe d'exception est le suivant :
L'exception typique de RuntimeException (exception d'exécution) inclut NullPointerException, ClassCastException (exception de conversion de type), IndexOutOfBoundsException. (exception hors limites), IllegalArgumentException (exception de paramètre illégal), ArrayStoreException (exception de stockage de tableau), AruthmeticException (exception arithmétique), BufferOverflowException (exception de dépassement de tampon), etc.
Non-RuntimeException (exceptions vérifiées) incluent IOException, SQLException, InterruptedException (exception interrompue - lorsque le thread appelant est en veille), NumberFormatException (exception de formatage des nombres), etc.
Comment Java gère les exceptions
1. 🎜>Pour les exceptions de type vérifié, nous devons soit les gérer, soit utiliser des lancers dans l'en-tête de la méthode.
public static void createFile() throws IOException{ File file = new File("C:/test.txt"); if(!file.exists()){ file.createNewFile(); } } public static void main(String[] args) { try { createFile(); } catch (IOException ex) { // handle exception here } }
try{ // other code } catch (IOException | SQLException ex) { throw ex; }
常常想要在捕获一个异常后抛出另外一个异常,并且希望把原始异常信息保存下来,这就是异常链。在JDK1.4以后,Throwable子类在构造器 中可以接受一个cause对象作为参数,表示原始异常,通过这样把原始异常传递给新的异常,使得即使在当前位置创建并抛出了新的异常,也能通过这个异常链 追踪到异常最初发生的位置。
但在Throwable子类中,只有Error, Exception, RuntimeException三类异常类提供了带cause参数的构造器,其它类型的异常则需要通过initCause()方法。例如定义了CustomException类,可以这样使用:
CustomException cmex = new CustomException(); cmex.initCause(new NullPointerException); throw cmex;
这样一来,CustomException继承自Exception或RuntimeException,就属于自定义异常了。
一般来说,自定义异常的作用有以下情形:
1)、将检查型异常转换为非检查型异常。
2)、在产生异常时封装上下文信息、定义异常码、收集环境对象,有利于信息的传递。
异常使用指南
1、在知道该如何处理的情况下才捕获异常。
2、自定义异常类型,用以封装所有的检查型异常。
3、在程序的边界进行异常捕获。如服务端相应客户端的请求,在出口处catch内部有可能产生的异常,并统一throw一个封装过的异常给客户端,免得暴露服务端敏感信息。
4、只针对异常的情况才使用异常。不要在所有的代码中习惯性地使用try-catch,因为这会影响性能。
5、抛出与抽象相对的异常。如果方法抛出的异常与它执行的任务没有明显的联系,这种情形会使人不知所措。为了避免这个问题,更高层的实现应该捕获 低层的异常,同时抛出可以按照高层抽象进行解释的异常,这种做法被称为异常转译(exception translation),如下:
try{ // use lower-level abstraction to do our bidding } catch(LowerLevelException ex){ throw new HigherLevelException(...); }
另外一种特殊的异常转译称为异常链,上面已作描述。如果低层的异常对于调试导致高层异常的问题非常有帮助,使用异常链就很合适。高层的异常提供访问方法(Throwable.getCause)来获得低层的异常。
6、每个方法抛出的异常要有文档描述。利用Javadoc的@throws标记,记录抛出每个异常的条件。如果一个方法可能抛出多个异常,不要使 用这些异常类的某个超类。如不要声明一个方法“throws Exception”或“throws Throwable”,这将没有任何指导信息。
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

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.

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.

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

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.

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.
