JavaSE-异常处理

Posted on 2021-03-08 07:42  MissRong  阅读(76)  评论(0)    收藏  举报

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)

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3