

Java 异常类型学习
source link: https://suiyia.github.io/2019/12/10/Java-%E5%BC%82%E5%B8%B8%E5%85%A8%E9%9D%A2%E5%AD%A6%E4%B9%A0/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Java 异常类型学习
Throwable 类是 Error 和 Exception 的父类,只有是 Throwable 的实例才能被 JVM 或者 Java 语句抛出,捕获。
Error:表示不希望被程序捕获或者是程序无法处理的错误,Error 类对象由 Java 虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。
Checked Exception:受检查异常,需要被 try catch 捕获或者 throws 抛出;如果不处理,IDE 会提示编译不通过。
Runtime Exception(Unchecked Exception):运行时异常,由程序逻辑错误引起,程序应该尽可能的避免该类异常。
异常发生时,有两种处理方式:捕获 or 抛出
捕获:try catch
抛出:
方法名上面声明抛出 throws。
方法内抛出 throw
异常抛出限制
- 父类的方法没有声明异常,子类在重写该方法的时候不能声明异常;
子类重写父类抛出的异常方法时,可以抛出或者不抛出异常;若抛出异常,子类抛出的异常类型必须与父类方法抛出异常类型相同,或者子类抛出的异常类型是父类方法抛出异常的子类。
错误抛出情况:子类抛出的 IOException 和 RuntimeException 不是同类型,也不是其子类。
public class C {
public void fun() throws RuntimeException{
}
}
public class D extends C {
public void fun() throws IOException,RuntimeException{
}
}如果父类抛出了 CheckedException ,那么子类重写的方法可以抛出 RuntimeException
正确的抛出情况:
public class A {
public void fun() throws IOException {
};
}
public class B extends A {
public void fun() throws IOException,RuntimeException{
}
}
自定义异常
所有异常都必须是 Throwable 的子类。
如果希望写一个检查性异常类,则需要继承 Exception 类。
如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。
异常捕获流程
1、try{} 里有一个 return 语句,那么紧跟在这个 try 后的 finally{} 里的 code 会不会被执行,什么时候被执行,在 return 前还是后?
答案:会执行,在方法返回调用者前执行。
Recommend
-
47
点击上方“程序员大咖”,选择“置顶公众号” 关键时刻,第一时间送达! 伙伴...
-
51
-
40
异常是 Java 程序中经常遇到的问题,我想每一个 Java 程序员都讨厌异常,一 个异常就是一个 BUG,就要花很多时间来定位异常问题。 什么是异常及异常的分类请看这篇文章:
-
41
在Java语言中,异常从使用方式上可以分为两大类: CheckedException UncheckedException 在Java中类的异常结构图如下:
-
32
本文的主要内容分为 Java 异常的定义、Java 异常的处理、JVM 基础知识(异常表、JVM 指令分类和操作数栈)及深入剖析 try-catch-finally 四部分(图解形式)。 在深入剖析 try-catch-finally 部分会以字节码的角度分析为什么 final...
-
34
背景 最近专门负责团队的项目质量。我在治理异常日志过程中,总结了一下Java的异常处理。上面是我整理的最近自己比较常见的异常知识地图。 异常...
-
13
Python 获取异常(Exception)信息 异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置。下面介绍几种 Python 中获取异常信息的方法,这里获取异常(Exception)信息采用 try…except… 程序结构。 如下所示:...
-
7
Java异常类型及处理前言: 异常指的是程序在执行过程中,出现了非正常情况,导致了java的jvm停止停止。异常结构为:Throwable 为顶级父类子类
-
8
从Java和JavaScript来学习Haskell和Groovy(类型系统) 浏览:544次 出处信息 接上文
-
3
Please wait... We are checking your browser... yoursite.com What can I do to prevent this in the f...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK