JavaSE-异常处理
https://www.matools.com/api/java8
Exception-异常,程序依然可以执行;
Error-错误,程序不能再被执行。
异常分为:运行时异常、非运行时异常
try cache
cache小异常要放在前面,父类异常要放在后面。
API中标准异常的顶级父类是Throwable类;
Throwable类有两个子类:Exception和Error。
finally
finally代码块是必须被执行的
EG :
static int foo() { try { int x = 100; int y = 0; System.out.println(x / y); System.out.println("程序结束"); return 0; } catch (ArithmeticException e) { System.out.println("发生了数学异常,除数不能为0"); return 1; } catch (NullPointerException e) { System.out.println("发生了空指针异常"); } catch (Exception e) { System.out.println("发生了异常"); }finally { System.out.println("finally 代码块"); } return 2; } //正常执行,返回try中的return //发生异常,finally中有return,则返回finally中的return //发生异常,finally中没有return,则返回cache中的return //发生异常,finally中没有return,cache中没有return,则返回结尾的return。
异常的两个处理方式:
捕获异常-try cache
声明异常-throws Exception
Java异常处理机制中,有try/catch/finally/throw/throws五个常用关键字;
try后可以同时有catch和finally,也可以二选一;
catch可以有多个,类型从子类到父类顺序(小的异常在前,大的在后),不能颠倒;
注:找到一个满足题意的cache后,还会继续执行下面的cache。
finally代码块总被执行,除非前面有System.exit(0)退出虚拟机;
throw用在方法体中,用来抛出异常对象给异常处理机制;
throws用户方法声明处,用来声明该方法可能抛出的异常类型。
常见的5种异常
RuntimeException 其子类均为运行时异常
NullPointerException 空指针
ClassCastException 类型强制转换异常
NumberFormatException 数字格式化异常
ArithmeticException 数字异常(整数除以0)
浙公网安备 33010602011771号