Maison  >  Article  >  Java  >  Méthodes et étapes d'analyse des instances d'exception Java

Méthodes et étapes d'analyse des instances d'exception Java

WBOY
WBOYavant
2023-04-20 15:31:261426parcourir

1. La plus grande classe parent parmi les exceptions, Throwable

Méthodes et étapes danalyse des instances dexception Java

Throwable peut être divisée en deux types :

Error

Exception :

  • Exception d'exécution (exception non cochée)

  • Exception de non-exécution ( Exception vérifiée)

Erreur : une erreur est une erreur que le programme ne peut pas gérer. Elle est renvoyée par la jvm, comme OutOfMemoryError, ThreadDeath, etc. Lorsque ces exceptions se produisent, la jvm choisira de terminer l'exécution du programme

. Exception : ce sont des exceptions qui peuvent être gérées par le programme lui-même

  • Exceptions d'exécution : ce sont toutes des classes et sous-classes RuntimeException, telles que NullPointerException (pointeur nul), IndexOutOfBoundException (tableau hors limites), etc. Ces exceptions peuvent être capturé et traité, ou non traité

  • Exception non-exécutable : (exception vérifiée) À l'exception de RuntimeException, le type appartient à la classe Exception Du point de vue de la syntaxe du programme, ces exceptions doivent être traitées. Le programme ne peut pas être compilé, comme IOException, SQIException

2. Problèmes à noter avec les trois instructions try-catch-finally

  • try, catch et enfin ne peuvent pas être utilisées seules. combinaison. La méthode de combinaison est : try…catch, try…catch…finally, try...finally, il peut y avoir une ou plusieurs captures, et il ne peut y avoir qu'une seule instruction final au plus. Les blocs d'instructions sont le bloc de code, et ils ne peuvent pas accéder les uns aux autres indépendamment s'ils doivent être accessibles dans les trois blocs, définissez simplement les variables en dehors de ces blocs

  • S'il y a plusieurs blocs catch, au plus une exception. La classe sera mise en correspondance et le code du bloc catch sera exécuté, et les autres blocs catch ne seront pas exécutés, et l'ordre de correspondance est De haut en bas, une seule classe d'exception sera mise en correspondance au maximum, ce qui signifie qu'aucune classe d'exception ne peut être Les classes d'exception capturées par catch ne peuvent pas être répétées, et les exceptions de sous-classe sont capturées en premier, puis les exceptions de la classe parent

  • Peu importe s'il y a un problème avec l'instruction try, l'instruction in doit finalement être exécutée. . Fournit enfin une sortie unifiée pour le programme afin d'assurer une gestion unifiée de l'état du programme. Dans des circonstances normales, les ressources sont fermées et effacées dans enfin

  • package com.exception;
    public class Test {
        public static void main(String[] args) {
            int[] a=new int[5];
            try {
                for (int i = 0; i <10 ; i++) {
                    a[i]=i;
                }
                //空指针
            }catch (ArrayIndexOutOfBoundsException e){
                //弹出出错的地方
                System.out.println("1");
                e.printStackTrace();
                //访问异常,数组越界
            }catch (NullPointerException e){
                System.out.println("2");
                e.printStackTrace();
                //无论有错与否,finally最终执行
            } finally {
                System.out.println("都能执行");
            }
            System.out.println("---------------");
        }
    }

    3 Les fonctions de -finally-finalize

  • final: mot-clé. utilisé pour définir des constantes

enfin : un bloc de code qui peut toujours être exécuté dans les exceptions

  • finalize() : garbage collection, cette méthode est un appel système, pas besoin pour les programmeurs d'appeler manuellement

  • 4 . throws password

  • Lors de la définition d'une méthode, vous pouvez utiliser l'instruction throws password pour indiquer que la méthode ne gère pas l'exception, mais laisse à l'appelant de la méthode le soin de gérer l'exception

Lors de la définition d'une méthode. , le mot-clé throws peut être utilisé par le programmeur à son propre choix. S'il est utilisé, cela signifie que la méthode ne gère pas l'exception

  • Si la partie principale (main) utilise également le mot-clé throws, alors il. signifie que la méthode principale ne gère pas les exceptions, et laisse finalement le soin au jvm. Le jvm gère les exceptions en terminant le programme

  • lance une exception de sous-classe, et l'appelant qui appelle la méthode n'a pas à gérer l'exception.

  • Remarque :

  • throw mot-clé : Vous pouvez personnaliser les exceptions, c'est-à-dire lancer des exceptions, lorsqu'il est lancé, c'est un objet de la classe d'exception
  • 5.

    utilisé dans les déclarations de méthode. Après cela, il est suivi du nom de la classe d'exception

, qui peut être suivi de plusieurs classes d'exception, séparées par des virgules

pour indiquer qu'une exception est levée, et l'appelant de la méthode le gère

  • throws indique un type d'exception Possibilité, une exception ne se produit pas nécessairement

  • throw :

  • est utilisé dans le corps de la méthode, suivi de l'objet exception

  • ne peut que lancer. un objet d'exception

signifie lancer une exception, il y a un traitement d'instruction dans le corps de la méthode

  • une exception de lancement se produira certainement, ce n'est pas une possibilité

  • Représentation du code :

    package com.test;
    public class Throw {
        //throws Exception 代表该方法出现异常时不做处理
        public void deposit(int num1,int num2) throws Exception
        {
            // RuntimeException()是运行时异常最大的父类
            int sum;
            if(num2==0){
                throw new RuntimeException("可以自定义一个异常抛出:除数不能为0");
            }else{
               sum=num1/num2;
            }
        }
    }

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