package com.uek.test;
import java.util.InputMismatchException;
public class TestExecption {
public static void main(String[] args) {
int a = 0;
int b = 12;
int c = 2;
try {
c = b/a;
} catch (InputMismatchException|ArithmeticException e) {
/*
* //c = 12/4;
* e.printStackTrace();
* //关闭虚拟机不执行finally
* System.exit(0);
*/
System.out.println("输入异常");
}
catch (Exception e) {
//多个catch先写子类,再写父类,如果写了父类再写子类就没啥意义,直接匹配到了父,等于废话
}
finally {
//finally方法在return之后依然执行
//资源关闭就是放到finally里面,不管有无异常都会执行finally
System.out.println("执行finally-----");
}
/*
* System.out.println(c);
* System.out.println("bye");
*/
}
//除了RuntimeException以及他的子类是运行时异常,其他的都是编译时异常,编译时都不通过,所以要处理异常
public void aa() {
System.out.println("aa");
//return就是跳出对应的,结束当前方法
return;
}
}
异常分类
throwble Error 仅靠程序本身无法恢复的严重错误 Exception 异常
运行时异常
RuntimeException及它的子类 注意 不需要处理 程序运行错误时 操作错误,抛出异常例如控制台会报的异常
检查时异常
除运行时异常(RuntimeException)以为的异常,为检查时异常 注意:必须处理,不然代码会报红 处理方式: 1)try{}catch{}处理异常 2)不处理throws异常类
|