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){