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
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
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
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 :
5.
utilisé dans les déclarations de méthode. Après cela, il est suivi du nom de la classe d'exceptionpackage 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!