---恢复内容开始---
Try-Catch部分
2.e.PrintStackTrace():返回的是异常的堆栈信息,从上到下依次是产生异常的过程,以后大家看堆栈错误信息时,推荐从下往上看,依次分析,另外,咱们今天要讲常见的异常子类,到时候大家也可以通过该知识作为排错的依据。
3.e.getMessage():用来打印异常信息的字符串表示。
4.常见的异常
5.使用Ctrl+T:查看该类的继承结构(即实现类)
Try-catch-finally部分(有return的异常结构)
01.如果在catach块中,显示的调用了System.exit(1),那么finally块不再执行。
02.return出现在异常结构中执行次数和结果
多重catch部分(多路异常捕获)
多重catch要注释顺序,从子类异常向顶级异常Exception过渡。
面试题:try-catch块中存在return语句,是否还执行finally块,如果执行,说出执行顺序
解析:会执行,执行顺序是
Try
Catch
Finally
Return
重要:如果catch中return后跟的是常量,那么先执行finally,再执行Catch中的return。
如果Catch中return后跟的是变量,那么先执行return,然后走finally,再次回到return执行。
public static void main(String[] args) {
System.out.println(test());
}
@SuppressWarnings("finally")
static int test(){
//第一个异常案例
try {
System.out.println("请输入第一个操作数");
Scanner input=new Scanner(System.in);
int num1 = input.nextInt();
System.out.println("请输入第二个操作数");
int num2 = input.nextInt();
//计算结果
int result=num1/num2;
return 100;
} catch (Exception e) {
// e.printStackTrace();
System.out.println("------------------------");
System.out.println(e.getMessage());
// System.exit(1);//虚拟机非正常退出
return 1;
}finally{
System.out.println("我是高贵的finally");
return 2;
}
}
//解析:输出结果是2,最终返回的是finally中的值。
声明异常
throws
IO
数据库处理
抛出异常
Throw new Exception()
异常分类图
---恢复内容结束---