键盘敲烂,月薪过万作业不做,等于没学
当前系列: Java语法 修改

复习:


继承结构

所有Exception都继承自基类:Throwable

Throwable下面除了Exception还有Error:和运行时环境(比如:JVM)有关的错误,无法被开发人员捕获或处理,比如说堆栈溢出(StackOverflowError)。

Exception可以被捕获,又被分成两种:

  • 运行时异常(Runtime Exception),又被称之为“非检查(性)异常”,
  • 检查(性)异常(Checked Exceptions),运行时异常以外的所有异常,都属于检查异常(但没有CheckedException这个基类)

Ctrl+T演示以上继承结构


Throw

e.printStackTrace();


Throws

如果一个方法可能(编译时检查,只要“可能”就)会抛出的是检查性异常,那么该方法必须使用 throws 关键字:

static void getGrade(int score) throws IOException  {    //throws 关键字放在方法签名的尾部
		throw new IOException();

凡是调用有throws声明的方法:

  • 要么就try...catch捕获这个异常,并且不再抛出检查异常(抛运行时异常是OK的)
  • 要么就要在当前方法上继续声明throws


选择:Runtime vs Checked

当我们自定义一个异常类的时候,是:

  • 继承自Throwable,使其成为检查性异常呢
    class AbsenceException extends Throwable{    
  • 还是RuntimeException,使其成为非检查性异常:
    class AbsenceException extends RuntimeException{    //

飞哥个人观点:没必要使用Checked Exception(尤其是在Java Web项目中),因为:


作业

见:J&C:异常:运行时错误 / Exception类
Java 异常 throwable
觉得很 ,不要忘记分享哟!

任何问题,都可以直接加 QQ群:273534701

在当前系列 Java语法 中继续学习:

我们的 特色

  • 先学习,后付费
  • 线上/线下,自由组合

更多了解

QQ群:273534701

答疑解惑,远程debug……

B站 源栈-小九 的直播间

写代码要保持微笑 (๑•̀ㅂ•́)و✧