try catch总结
异常
在学习try catch之前我们先来了解一下异常
上图是java中常见异常,异常的处理方式分为两种:一种是抛给别人处理,我们项目中经常用的就是这种,在项目中抛出去进行统一的异常处理.另一种是我们自己手动处理,也就是try catch,今天我们重点了解一下手动处理异常.
出现异常时try catch的执行顺序
首先来一段简单的代码
@Test
public void test1() {
try {
System.out.println("1");
int i = 1 / 0;
System.out.println("2");
} catch (Exception ex) {
System.out.println("3");
}
}
打印结果:
1
3
//在异常发生后的代码不执行跳过直接执行catch
一般在try catch使用时会配合finally,finally的作用是不管有没有发生异常都会执行.例如经常用的io操作关流,netty中优雅的关闭shutdownGracefully操作,接下来我们一起来看个有意思的代码.
@Test
public void test2() {
System.out.println(test3());
}
private int test3() {
int i = 0;
try {
i++;
int j = 1 / 0;
i++;
} catch (Exception ex) {
return i++;
} finally {
i++;
}
return i;
}
这段代码的执行结果为1,这里有几个坑,首先我们先来捋一捋这段代码的执行流程: