java异常体系

article/2025/10/30 20:36:05

java异常体系结构图

一:java异常体系

1.Thorwable类(表示可抛出)是所有异常和错误的超类,两个直接子类为Error和Exception,分别表示错误和异常。

2.其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常, 这两种异常有很大的区别,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)。

二:Error与Exception

1、Error错误:(这种错误无法处理)描述了Java运行时系统的内部错误和资源耗尽错误。一般是指虚拟机(JVM)相关的问题,如系统崩溃,虚拟机出错误等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常不处理。因为如果出现这样的内部错误,除了通告用户,并尽力使程序安全地终止之外,再也无能为力了。

2、Exception异常:Java的异常分为两种,checked Exception(编译时异常也叫非运行时异常)和 RuntimeException(运行时异常)。

三:运行时异常与非运行时异常

1.运行时异常(逻辑方面)都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。

2.非运行时异常(程序语法)是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。

四:Java异常处理方法有:抛出异常,捕捉异常。主要依赖于try、catch、finally、throw、throws五个关键字。

1. try---catch。    try:它里面放置可能引发异常的代码,如果代码运行出现了错误,那么执着catch,但不能影响后边代码运行

public static void main(String[] args) {int[] a = new int[5];try {for (int i = 0; i <10; i++) {a[i] = i;}} catch (Exception e) {e.printStackTrace();}System.out.println("----------------");}

2.    throws:向外抛出异常,让之后一个接受到该异常的方法区处理

public static void main(String[] args) {Test test = new Test();try {test.run();} catch (CloneNotSupportedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("--------------");}public void run() throws CloneNotSupportedException {this.sun();}public void sun() throws CloneNotSupportedException {User user01 = new User();User user02 = user01.clone();System.out.println(user01);System.out.println(user02);user01.ChangedPerson("李四");System.out.println(user01.getPerson());System.out.println(user02.getPerson());}

从上述代码可以看到异常处理的步骤为

3、 try、catch、finally三个语句块应注意的问题

第一:try、catch、finally三个语句块均不能单独使用,三者可以组成 try...catch...finally、try...catch、try...finally三种结构,catch语句可以有一个或多个,finally语句最多一个。

    第二:try、catch、finally三个代码块中变量的作用域为代码块内部,分别独立而不能相互访问。如果要在三个块中都可以访问,则需要将变量定义到这些块的外面。

    第三:多个catch块时候,最多只会匹配其中一个异常类且只会执行该catch块代码,而不会再执行其它的catch块,且匹配catch语句的顺序为从上到下,也可能所有的catch都没执行。

      第四:先Catch子类异常再Catch父类异常。


4.finally,final,finalize()三者

  • finally 异常中总能执行的代码区
  • final 用于定义常量的关键字
  • finalize() 垃圾回收,该方法是系统调用,不用程序员手动调用

5.throws和throw的区别

throw:用于抛出一个实际的异常,抛出的时候是一个异常类的实例化对象,在异常处理中,try语句要捕获的是一个异常对象,那么此异常对象也可以自己抛出。

package methoud;
public class ThisDemo06{public static void main(String args[]){try{throw new Exception("自己抛着玩的。") ;    // 抛出异常的实例化对象}catch(Exception e){System.out.println(e) ;}}
};

throws用在方法签名中,用于声明该方法可能抛出的异常,表示此方法不处理异常,而交给方法调用处进行处理。

public class ThrowsDemo01 {public static void main(String args[]) throws Exception{Math m = new Math() ;        // 实例化Math类对象System.out.println("除法操作:" + m.div(10,0)) ;System.out.println("我还可以输出");}
}
class Math{public int div(int i,int j) throws Exception{    // 定义除法操作,如果有异常,则交给被调用处处理int temp = i / j ;    // 计算,但是此处有可能出现异常return temp ;}
};

在本程序中,主方法不处理任何异常,而交给JAVA中最大头JVM,所以如果在主方法使用了throws关键字,则表示一切异常交给JVM进行处理。


http://chatgpt.dhexx.cn/article/i67ODWVO.shtml

相关文章

Java 异常

Java异常 Java异常是Java提供的一种识别及响应错误的一致性机制。 Java异常机制可以使程序中异常处理代码和正常业务代码分离&#xff0c;保证程序代码更加优雅&#xff0c;并提高程序健壮性。在有效使用异常的情况下&#xff0c;异常能清晰的回答3个问题&#xff1a;异常类型…

JAVA异常详解

异常的定义 异常就是有异于常态&#xff0c;和正常情况不一样&#xff0c;有错误出现。在java中&#xff0c;阻止当前方法或作用域的情况&#xff0c;称之为异常。 异常的分类 Error&#xff1a;是程序中无法处理的错误&#xff0c;表示运行应用程序中出现了严重的错误。此类错…

java异常判断_Java异常类

异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错…

2020-11-08

Java&#xff1a;详解Java中的异常(Error与Exception) 置顶 王小二(IT) 2018-06-22 16:54:26 66242 收藏 389 分类专栏&#xff1a; 编程语言(Java基础) 文章标签&#xff1a; try catch finally Error 版权 《Java&#xff1a;详解Java中的异常(Error与Exception)》《Jav…

Java中异常详解

目录 介绍 : 异常体系&#xff1a; 异常的分类 : Java 默认处理异常的方式&#xff08;报错&#xff09; : 异常处理方法&#xff1a; try...catch &#xff1a; try...catch...finally&#xff1a; try...catch ....catch.....catch.... 异常对象的常见方法&#xff…

Java中的异常

目录 1. 异常产生的原因和分类 1.1 异常产生的原因 1.2 异常分类 2. 异常的处理 2.1 防御式编程 2.2 异常的抛出&#xff08;throw&#xff09; 2.3 异常的捕获 2.3.1 throws异常声明 2.3.2 try-catch捕获异常并处理 2.3.3 finally 3.自定义异常类 Java中的异常&…

Java异常(超详细!)

1、什么是异常&#xff0c;java提供异常处理机制有什么用&#xff1f; 什么是异常&#xff1a;程序执行过程中的不正常情况。异常的作用&#xff1a;增强程序的 健壮性。 eg. public class ExceptionTest01 {public static void main(String[] args) {int a 10;int b 0;//…

最全最详细的Java异常处理机制

一、异常概述与异常体系结构 异常概述 在使用计算机语言进行项目开发的过程中&#xff0c;即使程序员把代码写得尽善尽美&#xff0c;在系统的运行过程中仍然会遇到一些问题&#xff0c;因为很多问题不是靠代码能够避免的&#xff0c;比如&#xff1a;客户输入数据的格式&…

论文阅读_Heatmap解释

关节的热力图(Heatmap) 每一个关节点,生成一张热力图heatmap, 热力图的响应值作为关节位置的概率或似然. 热力图中数值越大的位置,响应值越大,表示越有可能是关节的位置. 那么构造heatmap实际上是构造了一个中间状态&#xff0c;这个heatmap有如下的一些优点&#xff1a; **1…

R绘图|heatmap

# 1.设置工作目录及调用R包 setwd("D://heatmap") library(vegan) library(RColorBrewer) library(gplots) library(permute) library(lattice)图1 原始数据文件格式。行名为样地名&#xff0c;列名为物种名。 # 2. 读入数据 dir() aoaread.csv("Aspe.csv"…

用Python绘制Heatmap

本文内容为基于python的heatmap的绘制与渲染 文章目录 前言一、Heatmap是什么&#xff1f;二、使用步骤1.引入库2.代码 总结 前言 在写论文时&#xff0c;看到大佬们的文章中精美的图表。却不知道如何进行绘制&#xff0c;本文提供了一种heatmap的绘制方式。 一、Heatmap是什么…

HeatMap(热图)的原理和实现

HeatMap&#xff08;热图&#xff09;的原理和实现 先来看两张图&#xff1a; &#xff08;1&#xff09;10年世界杯决赛&#xff0c;冠军西班牙队中门将、后卫、中场及前锋的跑位热图 通过热图&#xff0c;我们可以很清楚的看出四个球员在比赛中跑动位置的差异。 &#xff…

人体姿态估计-生成heatmap的方法

人体姿态估计-生成heatmap的方法 参考Simple BaseLine生成HeatMap的方法&#xff0c;这里整理进行显示&#xff0c;方便可视化&#xff1a; Simple BaseLine生成HeatMap的方法&#xff1a;human-pose-estimation.pytorch/JointsDataset.py at master microsoft/human-pose-es…

seaborn可视化——一文搞懂heatmap参数

文章目录 datacmaplinewidths、linecolorsquareaxannot指定为True指定为同形状数组 vmax、vminannot_kwsmaskxticklabels、yticklabels设置为auto指定整数指定为True centerrobustfmtcbar 数据使用的是seborn内置数据 官网链接&#xff1a;https://seaborn.pydata.org/generate…

BagNet特征heatmap可视化

BagNet地址&#xff1a;https://github.com/wielandbrendel/bag-of-local-features-models BagNet是ResNet的变体&#xff0c;显著的区别是将3x3卷积变为1x1卷积来达到构造整体网络具有某个最终的感受野(receptive field)目的。在这里主要讲解对于一张来源于ImageNet的尺寸为22…

关键点检测——heatmap热力图法

一、数据集格式 二、解析xml文件&#xff0c;生成data_center.txt from PIL import Image import math,os from xml.etree import ElementTree as ETdef keep_image_size_open(path, size(256, 256)):img Image.open(path)temp max(img.size)mask Image.new(RGB, (temp, te…

Learn OpenCV之Heatmap

本文是利用热图&#xff08;Heatmap&#xff09;分析视频序列的标定。 注意&#xff0c;这里目的不是标定而是分析标定好的数据&#xff0c;或者也可以是检测的结果数据 文章结构是这样的&#xff0c;先详细的解释一下热图分析有什么用&#xff0c;根据一些具体的应用实例给出…

python heatmap画法

任务描述 将一个归一化的分数以热图的形式显示出来&#xff0c;分数高的地方颜色深&#xff0c;分数小的地方颜色浅 注意&#xff1a;使用单一颜色无法实现这种渐变过程 原理 将单通道的0-1之间的score值映射到三通道的颜色空间 原料 一个单通道的score矩阵颜色空间列表&a…

python heatmap总结

基础使用 import seaborn as sns; sns.set_theme(color_codesTrue) iris sns.load_dataset("iris") species iris.pop("species") g sns.clustermap(iris)取消行列分类树 import seaborn as sns; sns.set_theme(color_codesTrue) import matplotlib.p…

seaborn绘制heatmap

【seaborn.heatmap整理】 用处&#xff1a;将数据绘制为颜色方格&#xff08;编码矩阵&#xff09;。 引用形式&#xff1a; seaborn.heatmap(data, vminNone, vmaxNone, cmapNone, centerNone, robustFalse, annotNone, fmt’.2g’, annot_kwsNone, linewidths0, linecolor‘…