java异常判断_Java异常类

article/2025/10/30 20:38:01

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

Java异常类层次结构图:

c8b0274c85d5e3dbd2349d18bfe0f70f.png

在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出)。Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性。

Throwable: 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。

Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。

这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(Virtual MachineError)、类定义错误(NoClassDefFoundError)等。这些错误是不可查的(因为不知道什么时候会出现这类问题,不好指定同时也没有定义),因为它们在应用程序的控制和处理能力之 外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。在 Java中,错误通过Error的子类描述。

Exception(异常):是程序本身可以处理的异常(很多错误提前可以预知如除数为0就会报错)。

Exception 类有一个重要的子类 RuntimeException。RuntimeException 类及其子类表示“JVM 常用操作”引发的错误。例如,若试图使用空值对象引用、除数为零或数组越界,则分别引发运行时异常(NullPointerException、ArithmeticException)和 ArrayIndexOutOfBoundException。

注意:异常和错误的区别:异常能被程序本身可以处理,错误是无法处理。

Java的异常(包括Exception和Error)按照编译器是否在编译期间检查分为可查的异常(checked exceptions)和不可查的异常(unchecked exceptions)。

可查异常(编译器要求必须处置的异常):正确的程序在运行中,很容易出现的、情理可容的异常状况。可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常状况,就必须采取某种方式进行处理。

除了RuntimeException及其子类(编译器不做检查如空指针异常)以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。

不可查异常(编译器不要求强制处置的异常):包括运行时异常(RuntimeException与其子类)和错误(Error)。

Exception 这种异常分两大类运行时异常和非运行时异常(编译异常)。程序中应当尽可能去处理这些异常。

按照程序执行的过程划分

运行时异常:都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过(  如果所有方法都层层上抛获取的异常,最终JVM会进行处理,处理也很简单,就是打印异常消息和堆栈信息。如果抛出的是Error或RuntimeException,则该方法的调用者可选择处理该异常)。

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

Java中的异常处理机制

在 Java 应用程序中,异常处理机制为


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

相关文章

2020-11-08

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

Java中异常详解

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

Java中的异常

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

Java异常(超详细!)

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

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

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

论文阅读_Heatmap解释

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

R绘图|heatmap

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

用Python绘制Heatmap

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

HeatMap(热图)的原理和实现

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

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

人体姿态估计-生成heatmap的方法 参考Simple BaseLine生成HeatMap的方法,这里整理进行显示,方便可视化: Simple BaseLine生成HeatMap的方法: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内置数据 官网链接:https://seaborn.pydata.org/generate…

BagNet特征heatmap可视化

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

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

一、数据集格式 二、解析xml文件,生成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

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

python heatmap画法

任务描述 将一个归一化的分数以热图的形式显示出来,分数高的地方颜色深,分数小的地方颜色浅 注意:使用单一颜色无法实现这种渐变过程 原理 将单通道的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整理】 用处:将数据绘制为颜色方格(编码矩阵)。 引用形式: seaborn.heatmap(data, vminNone, vmaxNone, cmapNone, centerNone, robustFalse, annotNone, fmt’.2g’, annot_kwsNone, linewidths0, linecolor‘…

Heatmap

前言 目前所说的模型可视化或者模型可解释说到是对某一类别具有可解释性,直接画出来特征图并不能说明模型学到了某种特征,对一个深层的卷积神经网络而言,通过多次卷积和池化以后,它的最后一层卷积层包含了最丰富的空间和语义信息…

R | 可视化 | 热图(Heatmap)

1 基础绘制 R绘制热图时&#xff0c;数据需要输入一个矩阵&#xff0c;可以用as.matrix()把它转换成矩阵。这里利用R自带的数据集绘制热图。 > # 数据 > data <- as.matrix(mtcars) > > # 绘制热图 > heatmap(data) OUTPUT: 热图的每一列是一个变量&…

科研作图-heatmap(一)

1.简介 在科研中有很多地方为了可解释给审稿人提供了热图,便于知道深度学习中到底是哪部分在起作用,或者是在机器学习中分析不同的特征之间是否存在相关性?存在多大的相关性;或者是直观的展示场景热力图…总之,用处很多,我正好现在也需要用,就先总结下:绘制HeatMap的库有很多,…