Maison  >  Article  >  Java  >  Comment Java lève-t-il une exception

Comment Java lève-t-il une exception

(*-*)浩
(*-*)浩original
2019-05-22 14:07:1927857parcourir

Si vous souhaitez lever une exception en Java, vous devez utiliser deux mots-clés Java, tous deux utilisés pour les mécanismes de gestion des exceptions.

Comment Java lève-t-il une exception

Une méthode ne gère pas cette exception, mais la transmet à la hiérarchie appelante. Celui qui appelle cette méthode gérera cette exception. C'est ce qui lève une exception.

throw : Lance l'exception générée (l'accent est mis sur l'action). Ce qui est lancé peut être soit une référence d'exception, soit un objet d'exception. (Emplacement : à l'intérieur du corps de la méthode)

throws : Si une méthode peut lever une exception, mais n'a pas la capacité de gérer cette exception, vous pouvez utiliser la clause throws au niveau de la méthode déclaration pour déclarer qu'une exception est levée. La méthode modifiée avec indique à l'appelant que la méthode peut lever une exception (peut être un ou plusieurs types, séparés par des virgules) (position : écrite après le nom de la méthode ou la liste des noms de méthode, dans la méthode avant le corps.)

Remarque : Lors de l'appel d'une méthode susceptible de lever une exception, vous devez ajouter un bloc de code try-catch pour essayer d'intercepter l'exception ou ajouter une instruction throws pour lancer l'exception au ci-dessus Une couche d'appelants le gère. Un détail doit être noté ici : la nouvelle exception contient toutes les informations de l'exception d'origine. Sur cette base, nous pouvons retracer l'emplacement où l'exception d'origine s'est produite. 🎜>Utilisation simple :

// 定义一个方法,抛出 数组越界和算术异常(多个异常 用 "," 隔开)
public void Test1(int x) throws ArrayIndexOutOfBoundsException,ArithmeticException{
	System.out.println(x);
	if(x == 0){
		System.out.println("没有异常");
		return;
	}
	//数据越界异常
	else if (x == 1){
		int[] a = new int[3];
		a[3] = 5;
	}
	//算术异常
	else if (x == 2){
		int i = 0;
		int j = 5/0;
	}
}
Appel dans la méthode principale :

public static void main(String[] args) {
        //创建对象
        ExceptionInital object = new ExceptionInital();
        // 调用会抛出异常的方法,用try-catch块
        try{
            object.Test1(0);
        }catch(Exception e){
            System.out.println(e);
        }
        // 数组越界异常
        try{
            object.Test1(1);
        }catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("数组越界异常:"+e);
        }

        // 算术异常
        try{
            object.Test1(2);
        }catch(ArithmeticException e){
            System.out.println("算术异常:"+e);
        }

        //使用 throw 抛出异常(可以抛出异常对象,也可以抛出异常对象的引用)
        try{
            ArrayIndexOutOfBoundsException  exception = new ArrayIndexOutOfBoundsException();
            throw exception;//new ArrayIndexOutOfBoundsException();
        }catch(ArrayIndexOutOfBoundsException e){
            System.out.println("thorw抛出异常:"+e);
        }
    }
Résultat d'exécution :

Comment Java lève-t-il une exceptionRésumé de la différence entre les mots-clés throw et throws

1 Écriture : throw est utilisé dans le corps de la méthode, throws est utilisé après le nom de la fonction ou après le paramètre. list et avant le corps de la méthode

2. Signification : throw met l'accent sur l'action, tandis que throws indique une tendance, qui peut mais pas nécessairement se produire

3. Throws est suivi de la classe d'exception, qui peut être un ou plusieurs. Les multiples sont séparés par des virgules. throw est suivi de l'objet d'exception ou d'une référence à l'objet d'exception.

4. throws L'utilisateur lève une exception Lorsque l'exception est levée dans la méthode actuelle, l'exécution de la méthode actuelle se termine (après le lancement, s'il y a une instruction final, elle sera exécutée jusqu'au final. déclaration puis fin.). Cela peut être compris comme un retour.

Recommandations d'apprentissage associées :

Tutoriel de base 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!

Déclaration:
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