Maison  >  Article  >  Java  >  Comment utiliser les exceptions et assertions Java

Comment utiliser les exceptions et assertions Java

WBOY
WBOYavant
2023-04-20 08:31:061667parcourir

Exceptions Java

En Java, un objet d'exception est toujours une instance d'une sous-classe Throwable.

Le système de classes Error décrit les erreurs internes et les situations d'épuisement des ressources dans le système d'exploitation Java.

Les erreurs causées par la programmation entraîneront une RuntimeException. Les exceptions causées par d'autres raisons d'erreur - par exemple, les erreurs dans un programme qui s'exécutait autrefois correctement en raison d'erreurs d'E/S ne provoqueront pas d'exceptions RuntimeException.

Les exceptions dérivées de RuntimeException incluent les problèmes suivants : 1> Conversion de type incorrecte ; 2> Accès hors limites du tableau ; 3> Tentative d'accès à un pointeur nul.

Les exceptions qui ne sont pas dérivées de RuntimeException incluent :

1〉essayer de lire les données à la fin du fichier ;

2〉essayer d'ouvrir une URL mal formée

3〉essayer d'utiliser une chaîne pour construire une classe ; object , et lorsque la classe correspondant à la chaîne n'existe pas ;

Le principe de gestion de RuntimeException est le suivant : si une RuntimeException se produit, cela doit être votre erreur ;

Différents navigateurs peuvent gérer différents types d'URL, donc quel que soit le format de l'URL ; Les erreurs dépendent de l'environnement spécifique, pas seulement du code du programme ;

Dans la spécification du langage Java, toute sous-classe d'Error et les sous-classes de RuntimeException sont appelées exceptions non vérifiées, tandis que les autres exceptions sont appelées exceptions vérifiées ; dans les 4 situations suivantes :

1〉Une méthode qui lève une "exception vérifiée" est appelée, comme la méthode readLine de la classe BufferReader

2〉Une erreur se produit pendant l'exécution du programme Error, et utilisez le throw ; instruction pour lever une "exception vérifiée" ;

3〉Erreur de programme, par exemple, a[-1]=0 lancera une "exception non vérifiée" telle qu'un index de tableau hors limites (ArrayIndex--OutOfBoundsException) ;

4 〉Une erreur interne s'est produite dans la machine virtuelle Java ou la bibliothèque d'exécution ;

Il n'est pas nécessaire de déclarer une erreur interne en Java ; Une méthode doit déclarer toutes les « exceptions vérifiées » qu’elle peut lever. Si vous remplacez une méthode de la classe parent dans votre propre sous-classe. Il est important de noter que si la méthode de la classe parent ne lève aucune « exception vérifiée », la sous-classe ne peut que faire de même ;

En Java, une méthode sans l'indicateur throws ne peut lancer aucune exception Java vérifiée ;

Pour les blocs de code try/catch, si un code dans la méthode lève une exception et que son type n'est pas spécifié dans catch, la méthode se terminera immédiatement ;

Ceux qui savent comment gérer doivent être interceptés et traités avec les exceptions (utilisez catch ), et transmettez les exceptions qui ne savent pas comment gérer (utilisez des lancers) ;

Pour les blocs de code try/catch/finally, le code de la clause enfin sera exécuté, que l'exception soit interceptée ou non ;

Bien que Java programmeurs Le code doit être configuré manuellement dans la clause final pour recycler les ressources, mais comme Java dispose d'un mécanisme de "garbage collection" intégré, seul un très petit nombre de ressources nécessitent un recyclage manuel

La méthode actionPerformed ne peut lever aucune exception vérifiée ; ;

Quelques conseils pour utiliser le mécanisme d'exception Java :

1〉Le contrôle des exceptions ne peut pas remplacer les tests simples. Par rapport à l'exécution de tests simples, le temps requis pour intercepter les exceptions est beaucoup plus long que le précédent, les exceptions ne doivent donc être utilisées que dans des conditions anormales. circonstances ;

2〉Ne sur-affinez pas les exceptions ;

3〉Ne supprimez pas les exceptions : vous pouvez utiliser le format suivant : try { //code} catch (Exception e) { //empty}

4 〉N'hésitez pas à transmettre des exceptions : pour certaines exceptions (telles que les exceptions générées en appelant le constructeur FileInputStream ou la méthode readLine), il vaut mieux la transmettre que l'attraper. Il est plus approprié d'avoir une méthode de haut niveau pour informer l'utilisateur d'une erreur ou pour abandonner une commande infructueuse.

Assertions Java

Par défaut, les assertions Java sont désactivées. Il peut être ouvert avec -ea et fermé avec -da. L'option -ea:...activera la fonction d'assertion de toutes les classes du package par défaut. L'activation ou la désactivation de l'assertion est une fonction du chargeur de classe

-da et -ea ne sont pas applicables à ces "systèmes" ; classes" qui n'ont pas de chargeur de classe. Cela fonctionne. Pour ces classes système, utilisez l'option -enablesystemassertions/-esa pour activer la fonction d'assertion ;

Conseils d'utilisation des assertions Java :

1> programmes Phases de développement et de test ;

Par conséquent, les assertions ne doivent pas être utilisées comme un signal pour informer d'autres parties du programme qu'une erreur récupérable s'est produite, ou comme un moyen d'informer les utilisateurs du programme. Les assertions Java ne doivent être utilisées que pour localiser les erreurs internes du programme pendant la phase de test ;

Les assertions Java sont un outil utilisé pendant la phase de test et de débogage, tandis que la journalisation est un outil stratégique utilisé tout au long du cycle de vie du programme.

Ce qui suit est une section de think in java

Directives en matière de violationUtilisez des exceptions pour effectuer les choses suivantes :

(1) Résolvez le problème et appelez à nouveau la méthode qui a provoqué la violation.

(2) Ralentissez la situation et continuez sans réessayer la méthode.

(3) Calculez un autre résultat que celui que vous souhaitez que la méthode produise.

(4) Résolvez le problème autant que possible dans l'environnement actuel et relancez la même violation dans un environnement plus avancé.

(5) Résolvez les problèmes autant que possible dans l'environnement actuel et rejetez différentes violations dans un environnement plus avancé.

(6) Abandonner l'exécution du programme.

(7) Simplifiez le codage. Si le système de violation complique les choses, ce sera très ennuyeux et il vaut mieux ne pas l'utiliser.

(8) Rendez vos propres bibliothèques et programmes plus sécurisés. Il s'agit à la fois d'un "investissement à court terme" (pour un débogage plus facile) et d'un "investissement à long terme" (pour améliorer la robustesse de l'application)

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer