Java的异常究竟是怎么一回事

Java 异常处理 -- Java 语言的异常、异常链与断言 世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确处理好意外情况,才能保证程序的可靠性。 阅读详情

背景

异常天天见,本文主要围绕Java的异常体系和分类简单讲讲Java的异常。

一、异常体系

异常机制其实是帮助你找到程序中的问题,异常的父类是java.lang.Throwable,

其下有两个子类:java.lang.Error与java.lang.Exception,平常所说的异常指java.lang.Exception。

Throwable体系:

  • Error:错误顾名思义,一般无法处理,只能事先规避,如JVM虚拟机栈溢出。

  • Exception:异常产生后,通过代码可以纠正处理,保证程序运行,例如文件不存在异常。
    Throwable中的常用方法:

  • public void printStackTrace():打印异常的详细信息。
    包含了异常的类型、异常的原因,还包括异常出现的位置,在开发和调试阶段,都得使用printStackTrace。

  • public String getMessage():获取发生异常的原因。
    提示给用户的时候,就提示错误原因。

二、异常分类

程序员平常说的异常就是指Exception,因为这类异常一旦出现,你就要对代码进行更正,修复程序。

异常(Exception)的分类:

根据在编译时期还是运行时期分类如下,

  • 编译时期异常:受检异常,在编译时期就会检查,如果没有处理异常,则编译失败,如文件不存在异常。
  • 运行时期异常:运行时才会出现的异常,在编译时期无法发现,如大名鼎鼎的空指针异常。
    最后用一张图,直观地描述一下,

在这里插入图片描述

小结

1、异常本身不是语法层面的错误,它的本质是程序在执行过程中,出现非正常情况。

2、异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。

OV5640摄像头DVP与MIPI接口配置实战:从30Hz到60Hz的性能优化指南 本文详细解析了OV5640摄像头在DVP与MIPI接口下的60Hz性能优化方法,重点解决720p分辨率下帧率仅30Hz的常见问题。通过精确配置时钟树、传感器寄存器和接口参数,提供DVP与MIPI接口的实战配置代码,并分享调试工具与性能验证技巧,帮助开发者实现稳定的60fps输出。 阅读详情

相关推荐

RI-CLPM vs CLPM:什么时候该用随机截距交叉滞后模型?

本文深入对比了交叉滞后模型(CLPM)与随机截距交叉滞后模型(RI-CLPM)的核心差异与应用场景。RI-CLPM通过分离个体间稳定特质与个体内动态波动,能更纯净地估计变量间的动态因果关系,避免CLPM可能存在的混淆。文章提供了清晰的模型选择决策框架,并辅以Mplus语法示例,帮助研究者根据变量特质稳定性与研究问题,正确选用模型以确保结论的严谨性。

weixin_29276847的博客 306

Java的异常那些事

异常Exception:(错了,但问题不大)异常一般情况程序是可以自行处理的,利用catch来捕获或抛出。但并不是所有的异常都需要处理,有时候一些异常是无关紧要的,此时可以不对该类异常进行处理。为了区分这种情况,异常也可以分为两类**:受检查异常(Checked Exception)和不受检查异常(Unchecked Exception)**错误Error:(错了,问题很严重无法编译)错误一般是程序无法自行处理的。出现错误后,一般JVM都会终止线程。

LanceHang的博客 917

SAP ERP 物料主数据同步外围系统

w_input-beskz = i_marc_new-beskz."采购类型 " BESKZ--- ADD BY HX_FHJ 20210106。w_input-beskz = lw_marc-beskz."采购类型 " BESKZ--- ADD BY HX_FHJ 20210106。w_input-sobsl = i_marc_new-sobsl."特殊采购类型-虚拟物料标识。

ChampaignWolf的专栏 1747

【JAVA系列】关于异常的一些事

文章目录前言一、如何知道程序错误二、常见的异常1.算术异常2.数组越界异常3.空指针异常二、异常的基本用法1.如何捕获异常2.异常类的处理流程3.throws关键字4.throw关键字三、自定义异常类最后 前言 JAVA提供强大的异常处理机制,在Java中,所有的异常都会被封装到一个类中,程序出错时会将异常抛出。 一、如何知道程序错误 代码中的错误是客观存在的,没有十全十美的代码,代码多到一定程序,我们就需要不断维护、检查代码的错误,确保健壮性。 在Java中,我们有以下两种方式告诉程序代码发生错误:.

weixin_46913665的博客 4660

用Typora画流程图和序列图:Mermaid语法实战教程(含常见报错解决)

本文是一份详细的Typora与Mermaid语法实战教程,教你如何在Markdown文档中高效绘制流程图和序列图。文章涵盖从环境配置、核心语法到复杂图表构建的全过程,并重点解析了常见报错原因与解决方案,助你将可视化图表无缝融入文档工作流。

weixin_29279101的博客 300

SAP MM ME21N保存前检查增强

想在ME21N保存前做一些数据检查, 可以做一个增强功能,  运行 CMOD 新增,   增强接口 输入 MM06E005  (  EXIT_SAPMM06E_012 ) ,在 NCLUDE ZXM06U43 .  里写代码功能。  例子如下: *&---------------------------------------------------------------------*

heng0757的专栏 1万+

受检异常是什么怎么一回事儿

受检异常是Java中的一种重要机制,旨在强制开发人员处理潜在的错误情况,从而提高代码的健壮性。通过强制处理受检异常,可以避免在运行时出现未处理的异常,从而增强程序的稳定性。与输入输出操作相关的异常,如文件未找到、读写错误等。与数据库操作相关的异常,通常在执行SQL语句时抛出。当试图通过字符串名称加载类时,如果类未找到,则抛出此异常。试图访问不存在的文件时抛出。当解析某种格式(如日期或数字)时发生错误时抛出。当对象不支持克隆时抛出,通常用于实现Cloneable接口的类。

u012534547的博客 767

uniapp微信小程序开发:解决Video播放m3u8视频流非卡顿问题,使用video视频标签播放M3U8视频流或直播流总是加载一卡一卡的体验非常差的情况【多种优化方案提升流畅度和缓冲方案示例源码】

uniapp微信小程序video播放m3u8视频流卡,uniapp video在微信小程序播放m3u8格式视频总是加载频繁卡顿,Uniapp微信小程序苹果ios真机播放m3u8很卡加载不流畅怎么办,uni-App如何解决小程序端video播放视频流M3U8格式出现卡顿情况,uniapp播放m3u8直播流卡顿如何优化?uniapp m3u8格式视频加载,.m3u8监控视频,uniapp微信小程序使用video组件播放M3U8视频卡顿,uniapp微信小程序视频播放卡顿如何解决,uniapp 打包微信小程序播放

✅ 精选推荐文章 2988

Java那些事:异常

“好的程序设计语言能够帮助程序员写出好程序,但是无论哪种语言都避免不了程序员写出坏的程序。”                                                                                                                          ----《Java编程思想》  “充分发挥异

Vurteon的专栏 1665

基于STM32L4XX、HAL库的ICM-42607-P姿态传感器驱动程序设计

/ 转换为dps(±1000dps量程)float accel_x = sensor_data.accel_x * (8.0f / 32768.0f);// 转换为g值(±8g量程)#define ICM42607_I2C_ADDR 0x68 << 1 // I2C地址(SA0=0)= 0x40) { // ICM-42607的WHO_AM_I值为0x40。// 读取传感器数据。

zhusl6688的博客 835

2020计算机专业保研夏令营面经:中科院计算所网数机试题目

计算所网络数据科学与技术重点实验室的第一阶段是机试。机试不限程序语言,要求提交源代码。

乔卿的博客 2957

Java异常那些事

Java异常的那些事 一、 前言 在日常的Java编码工作学习中,我们总免不了和异常打交道,比如说新手常见的简称NPE的空指针异常、类型转换异常;读写文件数据库常见的IO异常、SQL异常;还有不是很常见但是总有一天你把程序搞崩遇到的栈溢出异常、内存溢出异常。今天我们就来详谈下Java异常的二三事。 下面是Jdk1.8中的异常类图: 二、 万物(异常)始于Throwable Throwable是所...

kevin的博客 335

ESP32网络开发实例-开发环境搭建

NodeMCU-ESP-32S开发环境搭建 NodeMCU-32S 最强的ESP32 开发板非盗版或副厂的CH340。WiFi 蓝牙ESP-32 可用Arduino IDE ESP32-S 是一款通用型WiFi-BT-BLE MCU模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3解码等。 此款模组的核心是ESP32芯片,具有可扩展、自适应的特点。两个CPU核可以被单独控制或上电。时钟频率的调节范围为80 MHz到240 MHz。用户可以切断CPU的电源,利用低

视觉与物联智能 3781

JAVA基础|JAVA的异常处理那些事

在计算机程序运行过程中,错误是不可避免的。例如用户输入非法数据、文件不存在、网络连接中断等。Java 提供了一套完整的异常处理机制,使得程序能够优雅地处理这些错误情况。虽然 Java 标准库提供了丰富的异常类型,但在实际项目中,我们通常需要定义自己的异常类型,以更好地表示业务逻辑中的错误。自定义异常通常继承自,以便不需要强制捕获。super();throw new UserNotFoundException("用户ID不能为空");// 处理用户逻辑。

2301_79433391的博客 661

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

java异常那些事

异常的基本定义: 异常情形是指阻止当前方法或者作用域继续执行的问题。在这里一定要明确一点:异常代码某种程度的错误,尽管Java有异常处理机制,但是我们不能以“正常”的眼光来看待异常,异常处理机制的原因就是告诉你:这里可能会或者已经产生了错误,您的程序出现了不正常的情况,可能会导致程序失败! 异常的体系: Java中所有的异常类都继承自父类Th...

weixin_30826761的博客 90

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java表示非法参数的异常是_JAVA 的异常那些事

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

weixin_30716611的博客 1360

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java异常那些不得不说的事

Java异常那些不得不说的事 博客分类:  Java javaexception 一、在finally块中做数据回收操作 比如数据库连接都是很宝贵的,所以最好在finally中关闭连接。 Java代码   JDBCAgent jdbc = new JDBCAgent();   try{   jdbc.excute("select *

evilcry2013的博客 327

分析Java异常的那些事

分析Java异常的那些事

askf01的博客 201

Java——异常那些事

异常的基本定义 异常情形是指阻止当前方法或者作用域继续执行的问题。在这里一定要明确一点:异常代码某种程度的错误,尽管Java有异常处理机制,但是我们不能以“正常”的眼光来看待异常,异常处理机制的原因就是告诉你:这里可能会或者已经产生了错误,您的程序出现了不正常的情况,可能会导致程序失败! 异常的体系 Java中所有的异常类都继承自父类Throwable Throwable下有两个之类...

用代码征服天下 85

Java基础之异常二三事

一、异常概念在java中,将程序执行过程中发生的一些不正常行为称之为“异常”,编译阶段语法错误不是异常!在现实生活的很多app中,出现的错误大多是逻辑上的错误。例如:教务管理登陆系统,当输入错误的用户名和密码时,程序出错,这个错误不是语法错误。注意点:异常也是类!二、异常分类Throwablejava.lang.Throwable类,这个类是Java中所有异常和错误的基类。Throwable下有两个大类那就是异常(Exception)和错误(Error)Error。

m0_63372226的博客 629

java的数据异常_JAVA 的异常那些事

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

weixin_35978903的博客 267

异常的二三事

Java中虽然已经内置了丰富的异常类但是我们实际场景中可能还有一些情况需要我们对异常类进行扩展创建符合我们实际情况的异常例如我们实现一个用户登陆功能if (!// TODO处理用户名错误if (!// TODO处理密码错误登陆成功");此时我们在处理用户名密码错误的时候可能就需要抛出两种异常我们可以基于已有的异常类进行扩展继承),创建和我们业务相关的异常类比特科技此时我们的login代码可以改成try {if (!用户名错误");if (

cjh_yyds的博客 1016

关于异常的那些事

之前面试的时候,被问到关于异常的继承关系,自定义异常,断言异常怎么处理的。 对这块知识不太了解,刚好做个博客整理一下。 异常的继承关系 运行时异常和非运行时异常的区别,分别含义是什么? 从继承关系图中可以看出,运行时异常包含了一些常见异常,如:NullPointerException,ClassNotFoundException等,一般爆出这些异常的时候,系统会中断运行,并且使用idea等编辑器不会提示需要进行try catch的操作。 但是非运行时异常又是什么?当时我说的是,在编译期间能够被检查出来的

Satan的博客 441

JAVA那些事(八)异常处理

JAVA中的异常处理

嗨咯!这里是三马分享家的博客,欢迎你的到来 1188

java错误哪些_Java——异常那些事

异常的基本定义异常情形是指阻止当前方法或者作用域继续执行的问题。在这里一定要明确一点:异常代码某种程度的错误,尽管Java有异常处理机制,但是我们不能以“正常”的眼光来看待异常,异常处理机制的原因就是告诉你:这里可能会或者已经产生了错误,您的程序出现了不正常的情况,可能会导致程序失败!异常的体系Java中所有的异常类都继承自父类ThrowableThrowable下有两个之类Error(错误)和E...

weixin_34668147的博客 89

【JavaSE专栏67】谈谈异常的那些事,学会预判异常、捕获异常、转移异常

本文讲解了 Java 中异常的基础概念及语法,并给出了样例代码。异常是指程序在运行过程中遇到的错误或异常情况,当程序出现异常时,会抛出一个异常对象,这会中断正常的程序执行流程,并将控制权转移到异常处理机制。

Designer 小郑的技术博客 1489
上一篇: Java的try-with-resources
下一篇: Java如何提前终止for循环
全粘架构师
博客等级 码龄22年 236粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全粘架构师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值