文章目录
1.异常是什么?
异常指的就是程序在 运行时 出现错误时通知调用者的一种 机制。
- 有些错误是这样的, 例如将
System.out.println
拼写错了, 写成了system.out.println
. 此时编译过程中就会出错, 这是 “编译期” 出错。- 而 “运行时” 指的是程序已经编译通过得到 class 文件了, 再由 JVM 执行过程中出现的错误。
异常的种类有很多, 不同种类的异常具有不同的含义, 也有不同的处理方式。
2.防御式编程
异常的核心思想就是 EAFP。
错误在代码中是客观存在的,我们有两种主要的方式:
- LBYL: Look Before You Leap. 在操作之前就做充分的检查。
- EAFP: It’s Easier to Ask Forgiveness than Permission. “事后获取原谅比事前获取许可更容易”. 也就是先操作, 遇到问题再处理。
3.抛异常
语法:throw 异常类型的对象
public static void main(String[] args) {
System.out.println(divide(3,0));
}
public static int divide(int x, int y) {
if (y == 0) {
throw new ArithmeticException("抛出除 0 异常");
}
return x / y;
}
运行结果:
4.捕获异常
语法:try-catch-finally //若有try,则catch、finally至少要有一个
try{
有可能出现异常的语句 ;
}[catch (异常类型 异常对象) {
} ... ]
[finally {
异常的出口
}]
- try 代码块中放的是可能出现异常的代码。
- catch 代码块中放的是出现异常后的处理行为。
- finally 代码块中的代码用于处理善后工作(关闭连接、释放资源、释放锁等), 会在最后执行。
- 其中 catch 和 finally 都可以根据情况选择加或者不加。
4.1try-catch-finally执行逻辑
异常处理流程::
1.程序中先执行 try 里面的代码。
2.如果try中的代码出现异常,就会结束try中的其他代码.检查当前异常和catch中声明的异常类型是否匹配(