2023年11月29日发(作者:)
trycatch异常后会执⾏后⾯的代码吗_Java基础—异常总结
前⾔
在⽇常的开发以及平时的学习练习中,异常相信对于⼤家来讲并不陌⽣,但是对于异常的具体使⽤、底层实现以及分类等等可能并不是很了
解。今天我就抽出了⼀点时间系统的整理了异常的各个知识点,希望能够帮助到⼤家对于Java 异常的理解与学习。
正⽂
⼀、异常的定义
异常:是⼀个在程序执⾏期间发⽣的事件,它中断正在执⾏程序的正常指令流。我⾃⼰的的理解是异常通常是⼀种⼈为规定的不正常的现异常
象,通常是写的程序产⽣了⼀些不符合规范的事情,⽽且异常⼀旦产品,程序直接挂掉。
⼆、异常的分类
通过我⾃⼰整理的这⼀张继承关系结构图,我们可以很清晰的看到异常这个庞⼤体系的继承关系。
其中我们可以看到 Exception类 下⾯⼜细分了两个分⽀(⼦类),分别是运⾏时异常(也称⾮检查异常[ Unchecked Exception ])和⾮
运⾏时异常(也称检查异常[ Checked Exception ]),需要注意的是 Error 也是属于⾮检查异常。
1、运⾏时异常
运⾏时异常也称⾮检查异常,指的是 Error 和 RuntimeException 这两种。既然是叫运⾏时异常,那肯定是在程序运⾏期间才可能被检查
出的异常,那⾃然编译器在编译的时候是不会检查此类异常的,并且不要求处理该类异常,所以此类异常也叫⾮检查异常(或者不检查异
常),这⼀类异常⼀般是由程序逻辑错误引起的,在程序中可以选择捕获处理,也可以不处理。
try{
//程序代码
}catch (Exception e){
}
其中 try 不能单独出现,后⾯必须添加 catch 或者 finally ,意思就是要么 atch,要么 try..finally,如下:
//写法1
try{
//程序代码
}catch (Exception e){
}
//写法2
try{
//程序代码
}finally {
try开始
Exception in thread "main" interException at
(:12)
再来看看下⾯代码的执⾏:
public static void main(String[] args) {
n("程序最早开始执⾏");
try{
n("try开始");
String str = null;
int length = ();
n("try完毕");
} catch (ArrayIndexOutOfBoundsException e1){
n("数组下标越界异常");
}
throws声明异常
运⽤于⽅法声明之上,⽤于表⽰当前⽅法不处理异常,⽽是提醒该⽅法的调⽤者来处理异常,⽐如下⾯两个代码块
public static void main(String[] args) {
try {
testException();
} catch (InterruptedException e) {
/**
* ⾃定义运⾏时异常
* @Date: 2020/4/21 9:54
*/
public class MyRuntimeException extends RuntimeException{
public MyRuntimeException(){
}
//如果想对⾃定义异常进⾏描述
public MyRuntimeException(String message){


发布评论