java基础巩固训练营【第一轮】(十一) 直面错误--java异常

2021.10.30 孤尽训练营D5——异常处理与日志 开发过程中常常会有已处理或无法处理的异常,若我们没有一个明确的处理逻辑和提示信息,在出现异常的时候就很难定位到具体的出错点。 大纲:Java异常体系、异常处理、日志规约、错误码规约、异常与日志综合实践 日志不规范,排查两行泪 异常应当描述导致当前异常发生的原因 根据异常栈快速定位到异常发生的位置 结合异常描述和异常栈解决异常 throwable时所有异常和error的最高父类,需要谨慎使用 java异常体系 非受检异常(RuntimeException,unchecked异常):在个人可. 阅读详情

本章的测试代码存放在 com.j2ee110.csdn.leader.exception包路径下面

大家的练习代码存放在 com.j2ee110.csdn.leader.姓名标识.exception包路径下面 

 

什么是java异常

 

很多和java同级别的语言比如c#都有异常体系,很多以前没有异常功能的语言比如php,在其后续版本中也加入了异常,因此异常应该是一门现代编程语言必备的功能

 

其实在这些编程语言中异常是用来进行错误提示的,而且是对运行时候的错误进行提示的。在程序运行时候可能会遇到一些错误,这些错误可以通过程序处理,从而避免程序被打断。

 

说句实话,我其实不敢发表关于java异常相关的看法,因为关于java异常网上的争论实在是太多了,就连BRUCE ECKEL(THINKING IN JAVA 的作者)这样的大牛也加入进来讨论这个问题,我如果发表点看法,可能会被网上的“砖家”们骂死,但是既然我们本次训练营是关于java系统的学习,而java异常又那么重要,那么我还是和大家一起分享一下我对java异常的一些看法,这些看法是我在工作中经常要用到的。 

 

异常的类别

java中的异常分为“检查异常”和“非检查异常”, 下面我来分类分析

 

“检查异常” 学名 Checked Exception 定义:扩展了java.lang.Exception的异常称为checked exceptions, 编译器要求这些异常必须被捕获或者重新抛出

 

“非检查异常” Unchecked Exception 定义:扩展了java.lang.RuntimeException的异常称为unchecked exceptions, 它们不是必须捕获的.

 

关于Checked 和 Unchecked 我就讲这么多吧,网上有很多讨论,都是关于如何用的,我这里不像下一个到底谁好的定义,但是我只想跟大家一起讨论一下在项目中如何用

 

 

异常的应用场景

 我觉得java异常在具体的应用中通常会有这两方面:1、熟悉JDK提供的异常,在遇到这些异常的时候要能认出他们

2、需要在应用程序中定义自己的异常。

 

 

自定义异常

在自定义的异常中我要讨论来两个问题,第一是如何定义异常,的第二是,如何抛出异常

 

 com.j2ee110.csdn.leader.exception.CheckedException 定义了一个检查类型的异常

 

 com.j2ee110.csdn.leader.exception.UncheckedException 定义了一个非检查型的异常

 

 

com.j2ee110.csdn.leader.exception.ExceptionThrowAuthor 定义了两个方法,这个两个方法分别抛出检查异常和非检查异常

 

异常的捕获和处理

 

com.j2ee110.csdn.leader.exception.ExceptionMain 演示如何捕获并处理异常

关于java异常最基本的就到暂时这些吧,其实异常一个比较重要的应用是异常链,但是异常链通常结合具体的项目来说明效果更好,所以我在第二轮或者第三轮在跟大家分享吧。

课后练习

今天的课后练习很简单,大家为自己创建一个检查型异常和一个非检查型异常,注意这个两个异常我在后面肯定是要用到的。

 

 

 

 

暑期java基础巩固训练营开始
java基础巩固训练营 简介
java基础巩固训练营【第一轮】(一)项目环境和规范
java基础巩固训练营【第一轮】(二)JAVA基础
java基础巩固训练营【第一轮】(三) 编写、编译、运行 
java基础巩固训练营【第一轮】(四) 利器(IDE工具)
java基础巩固训练营【第一轮】(五) 基本数据类型
java基础巩固训练营【第一轮】(六) 面向对象的JAVA
java基础巩固训练营【第一轮】(七) 数据结构中的java
java基础巩固训练营【第一轮】(八) 文件读写
java基础巩固训练营【第一轮】(九) 用java通信
java基础巩固训练营【第一轮】(十) 多线程
java基础巩固训练营【第一轮】(十一) 直面错误--java异常
java基础巩固训练营【第一轮】(十二) 我们一起来找茬
ava基础巩固训练营【第一轮】(十三) java桌面应用
java基础巩固训练营【第一轮】(十四) 大家一起做项目

 

 如果您对我的文章感兴趣的话,请点击这里加我为好友,让我们一起进步
 

http://student.youkuaiyun.com/invite.php?u=106708&c=2383a3846076c876

 

 

 

华为软件开发训练营课程资料大全 优秀代码是指能够高效、清晰、可维护地完成既定功能的代码。它通常是简洁的,没有多余的复杂性,易于其他开发者理解和使用。定义优秀代码需要考虑以下几个标准:可读性(Readability):代码应该易于理解,包括命名规范、适当的注释和清晰的逻辑。可维护性(Maintainability):优秀的代码应便于维护和扩展,意味着代码结构良好,逻辑清晰。可重用性(Reusability):优秀代码应该支持模块化,方便代码的复用。性能(Performance) 阅读详情

相关推荐

TexGen模型导出ABAQUS inp文件时纱线材料属性缺失?5分钟快速修复指南

本文针对TexGen模型导出ABAQUS inp文件时纱线材料属性缺失的问题,提供了快速修复指南。通过手动编辑inp文件或使用Python脚本自动补全材料属性,帮助复合材料仿真工程师高效解决问题。文章还介绍了TexGen导出前的预防性设置和ABAQUS中的验证技巧,确保仿真分析的准确性。

qsc901234的博客 250

pytorch 训练出现异常处理

if loss > 100 or np.isnan(loss): # 如果损失(out与标签计算) > 100 或者 loss为nan,出现异常,退出。防止方式意外 log('Loss exploded to {:.5f} at step {}'.format(loss, step)) raise Exception('Loss exploded') ...

luolinll1212的专栏 1000

Windows 11下manage-bde命令实战:BitLocker锁了别慌,手把手教你用命令行找回数据

本文详细介绍了在Windows 11系统下使用manage-bde命令解锁BitLocker加密驱动器的实战方法。通过命令行诊断、恢复密钥获取、解锁流程演示及高级故障排除,帮助用户在系统锁定后快速找回数据,特别适合IT技术人员和遇到紧急情况的用户。

weixin_30902251的博客 329

抛出异常的三种形式

抛出异常有三种形式:①系统自动抛出 ②throws ③throw 有的同学可能不知道该怎么去用。或者经常用到 throws 看到 throw 有点不确定。下面我们一起看一下。 ①系统自动抛出 :当程序出现一些逻辑错误、转换错误时,系统会自动抛出异常。 例如: 看系统抛出异常: 当然这只是其中的一种。除数为0还会抛出ArithmeticExcepti...

m0_37828937的博客 3万+

深入了解 CPU 的型号、代际架构与微架构!

深入了解 CPU 的型号、代际架构与微架构!

欢迎朋友,我是一名十多年开发经验的新手,希望多多指教。 3195

Abaqus子程序开发避坑指南:从UMESHMOTION到齿轮磨损分析实战

本文深入探讨Abaqus子程序开发中的关键技术与避坑指南,重点解析UMESHMOTION在齿轮磨损分析中的实战应用。从开发环境搭建、调试框架构建到性能优化和大规模计算,提供系统化的解决方案。通过真实案例展示如何避免内存泄漏、网格畸变等常见问题,并介绍数据驱动的磨损预测等前沿技术,帮助工程师提升仿真精度与效率。

weixin_30892037的博客 88

java基础巩固训练营【第一轮】(十三) java桌面应用

当人走的太快的时候就要停下来,让灵魂能够跟上。 2361

Google Earth Engine:计算逐年全球潜在蒸发量(PET)的 ERA 数据

通过获取温度、湿度和降水数据,并使用Penman-Monteith公式,我们可以得到每年的潜在蒸发量。在本文中,我们将使用Google Earth Engine平台和ERA(欧洲再分析气象数据集)数据来计算逐年全球的潜在蒸发量(PET)。接下来,我们需要对ERA数据进行预处理,以获取我们需要的潜在蒸发量数据。有了温度、湿度和降水数据,我们可以使用Penman-Monteith公式来计算每年的潜在蒸发量。最后,我们可以将计算得到的潜在蒸发量数据进行可视化,以便更好地理解全球的水汽蒸发情况。

VwajAlgorithm的博客 730

java基础巩固训练营【第一轮】(十二) 我们一起来找茬

当人走的太快的时候就要停下来,让灵魂能够跟上。 1948

GD32F4xx 移植agile_modbus软件包与电能表通信

GD32F4XX 移植agile modbus软件包实现与DTSU电能表通信调试记录

madao1234的博客 1304

一分钟了解 Claude Code

在 AI 编程工具百花齐放的 2026 年,凭借其终端原生、全项目理解、自主执行的核心能力,开辟了全新赛道。它不是要替代你的 IDE 或编辑器,而是成为你最强大的终端扩展,让你在熟悉的环境中,用自然语言驱动开发,专注创意,而非琐事。

h a 6 6 6 c k 为 你解决复杂难题! 2205

java基础巩固训练营【第一轮】(一)项目环境和规范

当人走的太快的时候就要停下来,让灵魂能够跟上。 3480

模型训练篇 | 手把手教你使用ResNet训练自己数据集和推理,ResNet50通用物体分类识别,含完整代码和数据集,全网最详细教程

手把手教你使用ResNet训练自己数据集和推理,ResNet50通用物体分类识别,含完整代码和数据集,全网最详细教程。本篇文章将带你学习 ResNet50 模型构建、ResNet50训练自己数据集、数据集处理、推理和验证、模型剪枝与模型改进等。 本篇教程适配各种分类识别任务,可以说是一个通用的教程,只需修改自己的数据集即可完成自己领域的任务和系统实现。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 731

java基础巩固训练营【第一轮】(十四) 大家一起做项目

当人走的太快的时候就要停下来,让灵魂能够跟上。 3244

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java基础巩固训练营【第一轮】(九) 用java通信

当人走的太快的时候就要停下来,让灵魂能够跟上。 1578

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java基础巩固训练营【第一轮】(十) 多线程

当人走的太快的时候就要停下来,让灵魂能够跟上。 1728

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

暑期java基础巩固训练营正式发布

当人走的太快的时候就要停下来,让灵魂能够跟上。 2887

Java异常处理训练营

什么是异常呢,在Java中,异常是代表程序代码在编译或者执行的过程中可能出现的错误。异常可以分为两种,一种是编译时异常,另一种是运行时异常。下面对这两种异常详细进行介绍。

weixin_49785524的博客 870

Java小题精炼训练营(篇十一)

1、对接口的描述正确的是() 一个类可以实现多个接口 接口可以有非静态的成员变量 在jdk8之前,接口可以实现方法 实现接口的任何类,都需要实现接口的方法接口 1.接口中声明的成员默认为static final成员(不管是基础数据类型还是引用类型),且必须初始化; 2.接口中声明的方法默认为public且不能有实现体,即{},方法体可有参数; 3.实现接口的类,必须实现接口中所有方法,且不能降低方法的运用域,即必须显示声明为public 4,抽象类不需要实现接口的方法。抽象类也可以实现接口,但是可

耀的博客 1234

王道训练营 Java 部分测试

王道训练营 Java 部分测试 第一部分 选择题 (20*2 共 40 分) 下列说法正确的是() A.Java 程序经编译后会产生 machine code B.Java 程序经编译后会产生 byte code C.Java 程序经编译后会产生 DLL D.以上都不正确 设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( )。 A. 3 B. 3. 5 C. 4 D. 5 0.6332 的数据类型是() A float B double C Float D Dou

weixin_光光的博客 2183

Java小题精炼训练营(篇九)

如果你选择了IT行业并坚定的走下去,这个方向肯定是没有一丝问题的,这是个高薪行业,但是高薪是凭自己的努力学习获取来的,这次我把P8大佬用过的一些学习笔记(pdf)都整理在本文中了《Java中高级核心知识全面解析》了解详情https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB的,并且默认即为public abstract类型。5. 抽象类中可以包含静态方法,接口中不能包含静态方法。

2401_86022611的博客 452

Java小题精炼训练营(篇十八)

1、关于类的叙述正确的是()。 在类中定义的变量称为类的成员变量,在别的类中可以直接使用 局部变量的作用范围仅仅在定义它的方法内,或者是在定义它的控制流块中 使用别的类的方法仅仅需要引用方法的名字即可 只要没有定义不带参数的构造函数,JVM都会为类生成一个默认构造函数 A在类中定义的变量称为类的成员变量,在别的类中不可以直接使用局部变量的 C使用别的类的方法需要通过该类的对象引用方法的名字 D只要没有定义任何构造函数,JVM都会为类生成一个默认构造函数 B 2、以下类定义中的错

耀的博客 2488

01_03_java异常机制和File类

异常机制和File类 异常机制(重点) 基本概念 异常就是"不正常"的含义,在Java语言中主要指程序执行中发生的不正常情况。 java.lang.Throwable类是Java语言中错误(Error)和异常(Exception)的超类。 其中Error类主要用于描述Java虚拟机无法解决的严重错误,通常无法编码解决,如:JVM挂掉了等。 其中Exception类主要用于描述因编程错误或偶然外在因素导致的轻微错误,通常可以编码解决,如:0作为除数等。 异常的分类 java.lang.Exception

weixin_41596178的博客 270

T31训练营-DAY5-异常处理与日志

一、JAVA异常体系 (1)异常处理流程图 (2)异常处理机制 (3)异常处理体系 二、异常处理 (1)异常处理原则 非必要使用异常 使用描述性消息抛出异常 力所能及的异常一定要处理 异常的忽略需要有理有据 (2)异常处理的一些特殊情况 1. try....catch....finally流程解析 2. try with resource 执行流程 3.级联调用时易产生 NPE 连...

zack_hj的博客 361

catch里面抛出异常_java常见面试题及答案(异常)

[如您对本文感兴趣,请点击标题下方蓝色“拓达IT训练营”添加关注,每天都有精彩实用文章呈现给您]异常1. throw 和 throws 的区别?throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。2. final、finally、finalize 有什么区别?f...

weixin_33600376的博客 3575
上一篇: java基础巩固训练营【第一轮】(十) 多线程 补充
下一篇: java基础巩固训练营【第一轮】(十一) 直面错误--java异常
模事在人
博客等级 码龄17年 1546粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值