将“受检查异常”转化为“不受检查异常”

Throwable类 -- Exception类 -- 受检查异常 && 运行时异常 文章目录1、异常1.1 Throwable类1.2 被捕获的异常分类2、异常被抛出或捕获后,后面代码是否执行3、哪些异常必须声明并捕获,否则产生编译错误4、throw和throws的区别4.1 为什么使用throw主动抛出异常对象 1、异常 1.1 Throwable类 Throwable 是所有 Java 程序中错误处理的父类 ,有两个子类: Error 和 Exception 。 (1)Exception:表示可恢复的例外,出现的问题是可以被捕获的 (2)Error:表示由 JVM 所侦测到的无法预 阅读详情

为了简化“受检查异常”的处理工作,可以将其包装成为“不受检查异常”,这样就不必捕获它,或者在异常声明中列出。注意,这样抛出的异常就是一个新的封装了原受检查异常的异常了。如果程序员确切知道会发生该异常,则可以对其进行捕获,并利用getCause()获取原“受检查异常”并再对其进行处理。再次捕获进catch块中的时候,编译器强制用Throwable作为“保底”

//IgnoreRuntimeException.java
//Transform a compile-checked exception into a Runtime Exception

package com.msn.spaces.bryantd001;

class CheckedWhenCompliedException extends Exception{
      private String str;

     CheckedWhenCompliedException(){
           super("Compile-checked Exception");
           str = "Compile-checked Exception --> Runtime Exception";
     }

     public void throwRuntimeException(){
           System.out.println("I will be transformed into a Runtime Exception and be rethrown.");
           throw new RuntimeException(this);
     }

     public String toString(){
           return str;
     }
}

public class IgnoreRuntimeException{
      public static void main(String[] args){
            try{
                  CheckedWhenCompliedException e = new CheckedWhenCompliedException();
                  e.throwRuntimeException();
           }catch(RuntimeException re){
                 try{
                       throw re.getCause();
                 }catch(CheckedWhenCompliedException e){
                       System.out.println(e);
                 }catch(Throwable e){   //编译器强制异常基类
                       System.out.println(e);
                 }
           }
      }
}


QGis软件 —— 1、Windows10下载安装QGis及插件 QGis —— 1、Windows10下载安装QGis及插件 阅读详情

相关推荐

SpringBoot3.X及SpringAi和jdk17以上版本集成MCP协议供大模型调用sse协议

MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 推出的开源协议,旨在实现大型语言模型(LLM)与外部数据源和工具的无缝集成,用来在大模型和数据源之间建立安全双向的链接。目标是成为 AI 领域的“HTTP 协议”,推动 LLM 应用的标准化和去中心化。本文主要讲解SpringBoot3.X版本和jdk17版本如何集成MCP协议 后续还有一个SpringBoot2.7和jdk1.8通过solon来实现@Service。

weixin_47247523的博客 788

提高你的Java代码质量吧:受检异常尽可能转化为非受检异常

一、分析 “把所有受检查异常(CheckedException)都转化为非受检查异常(UnCheckedException)”这一想法是不现实的。受检查异常是正常逻辑的一种补偿处理手段,特别是对可靠性要求比较高的系统来说,在某些条件下必须抛出首检异常以便由程序进行补偿处理,也就说受检异常又合理的存在理由,那为什么需要把受检异常转化为非受检异 常? 受检异常确实有不足的地方: ...

移动编程 383

ArcGIS利用模型构建器批量导出nc文件中的不同波段数据

ArcGIS利用模型构建器批量导出nc文件中的不同波段数据

Yuanbaokk的博客 7257

项目中异常处理方案

异常三种处理方案 实际项目中为了让用户有更好的体验,代码出现异常一般不会直接显示给用户,而是自己进行处理后返回,一般有三种处理方案,全局异常处理、特定异常处理和自定义异常处理,下面开始会一一介绍 全局异常处理 @ControllerAdvice public class GlobalExceptionHandler { // 全局异常 @ExceptionHandler(Exception.class) @ResponseBody public R error(Except

qq_45533609的博客 1449

密码学系列3-Elgamal加密及其IND-CPA安全性证明

但这没有任何影响,敌手本身就只能知道公钥,他并没有能力知道挑战者是否知道对应的私钥。所以上述整个游戏就是一个模拟实验,敌手无法区分挑战者运行的是这个模拟实验,还是真正的按照第一节的算法构造的实验(挑战者知道私钥…为什么合起来的时候有1/2:因为T既可能是随机的也可能是g^{ab},这两种情况概率为1/2。能够攻破Elgamal加密方案,那么挑战者利用敌手的能力构建下面游戏,来求解困难性问题DDH。就是挑战者选的随机数,虽然挑战者自己也不知道。),否则挑战者输出0,作为DDH的回答。

qq_41359358的博客 1251

内存越界一定会导致程序崩溃吗?详解内存越界

本文详细解释了内存越界不一定导致内存越界的问题,全面介绍了C++内存越界的相关内容。

dvlinker的技术专栏 2万+

java 受检异常和非受检异常

总是记不住什么是受检异常,什么是非受检异常,有时甚至弄混淆,特此简单记录以便复习之用。 异常的分类: java.lang.Throwable 1.Error错误:JVM内部的严重问题。无法恢复。程序人员不用处理。 2.Exception异常:普通的问题。通过合理的处理,程序还可以回到正常执行流程。要求编程人员要进行处理。 3.RuntimeException:也叫非受检异常(un

菜鸟很菜的专栏 1万+

CAPL编程规范与最佳实践

通过本文的学习,读者应该对CAPL编程规范与最佳实践有了初步的了解,并能够编写高质量的CAPL脚本。在实际项目中,CAPL的应用非常广泛,希望读者能够通过不断的学习和实践,掌握更多的CAPL技巧,提高自己的开发能力。

闲人编程的博客 1748

把“被检查的异常”转换为“不检查的异常”

写 main( )的时候,抛出异常是很方便的,但这不是通用的方法。问题的实质是,当你 在一个普通方法里调用别的方法时,你要考虑到“我不知道该这样处理这个异常,但是 也不能把它‘吞’了,或者打印一些无用的消息”。JDK 1.4 的异常链提供了一种新的 思路来解决这个问题。你直接把“被检查的异常”包装进 RuntimeException 里面,就 像这样:   try {  // ...

u011712600的专栏 603

2. 第一个 SAP CDS View 源代码的详细解析:CDS View 和底层自动生成 SQL View 的关系讲解

笔者前一篇教程文章,带着大家在 ABAP 系统创建了一个最简单的基于sflight数据库表的 CDS View:本文对这简单的 14 行源代码背后的知识点进行详细讲解。CDS 全称是 Core Data Services,它是一种数据建模技术,帮助开发者以更直观和高层的方式去描述数据库中所需的数据结构。在一个典型的 SAP ABAP 开发场景里,CDS 经常被用来编写各种用于报表、接口或业务逻辑的数据视图。通常,这些视图包含一系列注解。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1026

55、宇宙微波背景辐射望远镜及其光学系统解析

本文详细解析了宇宙微波背景辐射(CMB)望远镜及其光学系统的设计与优化。内容涵盖折射与反射光学系统的特性、旁瓣控制技术、气球与地面观测系统的对比、探测器阵列的发展、光学系统设计流程以及不同观测场景下的光学系统选择。同时,文章展望了CMB望远镜光学系统的未来发展趋势,包括技术创新、多频段观测、国际合作与大型项目等。通过系统性的分析与对比,为CMB研究提供了全面的技术支持与理论基础。

f9g0h的博客 145

Java基础之《受检查异常和不受检查异常》

1.最近重温了《java编程思想(第四版)》的异常章节。Java中的异常分为受检查的异常和不受检查的异常。(1)受检查的异常:这种在编译时被强制检查的异常称为"受检查的异常"。即在方法的声明中声明的异常。(2)不受检查的异常:在方法的声明中没有声明,但在方法的运行过程中发生的各种异常被称为"不被检查的异常"。这种异常是错误,会被自动捕获。从作者BruceEckel的语气中看以看出,作者对受检查的异...

csj50的专栏 1万+

倍福EL6002做RS232通信获取称重数据..

本文介绍EL6002模块通过RS232自由口通信协议获取从站数据。具体数据对照说明手册即可。

weixin_41883890的博客 1012

受检查异常和非受检查异常的区别

文章目录一. 受检查异常和非受检查异常的区别二. 代码示例 一. 受检查异常和非受检查异常的区别 所有的异常,都继承自java.lang.Throwable 衍生出来是子类是Error和Exception Exception 的子类又分为RuntimeException和CheckedException(例如IOException) 受检查异常是你必须要捕获的异常,否则无法通过编译, 而非受检查异...

Java持续实践 5711

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java中的异常分为受检查的异常和不受检查的异常

java中的异常分为受检查的异常和不受检查的异常。 (1)受检查的异常:这种在编译时被强制检查的异常称为"受检查的异常"。即在方法的声明中声明的异常。 (2)不受检查的异常:在方法的声明中没有声明,但在方法的运行过程中发生的各种异常被称为"不被检查的异常"。这种异常是错误,会被自动捕获。

zhang434的专栏 3451

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

受检查的异常和不受检查的异常

Java中的异常分为受检查的异常和不受检查的异常。 (1)受检查的异常:这种在编译时被强制检查的异常称为"受检查的异常"。即在方法的声明中声明的异常。 (2)不受检查的异常:在方法的声明中没有声明,但在方法的运行过程中发生的各种异常被称为"不被检查的异常"。这种异常是错误,会被自动捕获。 从作者Bruce Eckel的语气中看以看出,作者对受检查的异常是有质疑的,并认为在一些规模较小的程序中...

weixin_34096182的博客 1136

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Mockito之mock方法抛出受检查异常;Mockito 使用 doThrow 让方法抛出异常

Mockito 使用 doThrow 让方法抛出异常;Mockito之mock方法抛出受检查异常

JCjunior的博客 1万+

Java提高:受检异常尽可能转化为非受检异常

一、分析 “把所有受检查异常(Checked Exception)都转化为非受检查异常(UnChecked Exception)”这一想法是不现实的。受检查异常是正常逻辑的一种补偿处理手段,特别是对可靠性要求比较高的系统来说,在某些条件下必须抛出首检异常以便由程序进行补偿处理,也就说受检异常又合理的存在理由,那为什么需要把受检异常转化为非受检异常? 受检异常确实有不足的地方: 1.受检异常使

1024工场 5619

不受检查异常和检查异常的区别

成都汇智动力-Java异常发生的原因,不受检查异常和检查异常的区别 异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据。 要打开的文件不存在。 网络通信时连接中断,或者JVM内存溢出。 这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。 要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生.

yygr的博客 340

受检查异常与非受检查异常

先来概念: Exception异常分为:RuntimeException(运行时异常,也叫未检查异常或不受检查异常)和已检查异常(或受检查异常):       已检查异常 是指程序员已经足够小心的检查了他的代码,但是还是不能保证代码不出现异常;如,程序要访问某个文件,但访问时文件不存在,这和程序本身没有太大关系;再如,程序要进行网络连接,但执行时没有连接网线,这些问题都是已检查异常。   ...

第三帝国 502

运行时异常和受检查异常

Exception类可以分为两种:运行时异常和受检查异常。 1、运行时异常 RuntimeException类及其子类都被称为运行时异常,这种异常的特点是Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try...catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过。例如,当除数为零时,就会抛出java.lang.ArithmeticExcepti

A Dent in the Universe 2031

java 受检查异常_Java受检异常和不受检异常

Java异常有checked exception(受检异常)和unchecked exception(不受检异常), 编译器在编译时,对于受检异常必须进行try...catch或throws处理,否则无法通过编译,不受检异常没有这个约束。不受检异常包括RuntimeException及其子类 ,下图不受检异常未处理可以通过编译:受检异常包括Exception及其子类但不包括RuntimeExcep...

weixin_36250220的博客 747

Java中的异常机制(受检查异常和不受检查异常)_Thinking in Java读书笔记

最近重温了《java编程思想(第四版)》的异常章节。 Java中的异常分为受检查的异常和不受检查的异常。 (1)受检查的异常:这种在编译时被强制检查的异常称为"受检查的异常"。即在方法的声明中声明的异常。 (2)不受检查的异常:在方法的声明中没有声明,但在方法的运行过程中发生的各种异常被称为"不被检查的异常"。这种异常是错误,会被自动捕获。 从作者Bruce Eckel的语气中看以看出...

爱我中华之笔耕不缀! 325

运行时异常和受检查异常的区别

java程序设计语言提供了三种可抛出结构:受检查时异常(checked exception),运行时(run-time exception)和错误 (error) java异常:受检查时异常和运行时异常(非编译时异常) 首先介绍一下我们常见的集中描述:受检查时异常,编译异常,非运行时异常 描述可以理解为同一个意思, 运行时异常,非编译时异常,非受检查时异常 等同 // 非受检查的可...

以爱护甲,爱满枫林。 1万+

牛刀小试!Java中消除对受查异常的检查

牛刀小试!Java中消除对受查异常的检查 最近在阅读 Java 卷I,并尝试着做一些笔记。当然只是搬运工了,大部分都是在抄原文,偶尔有问题也写点见解什么的。对于原文内容,还是很不错的,让我理解了很多东西,有些很难理解的地方,或者生动的例子,我就直接大量copy了,毕竟我没办法精炼的说出来,让读者或者以后的我去理解。 好了,话不多说,切入主题吧! 今天看到了 卷I 的第8章,是关于泛型的介绍的,其中有一部分和异常有关的内容比较晦涩难懂,特别是 8.6.9小节——可以消除对受查异常的检查,真就拔了一爪子的头发了

silencefly的博客 672

如果你对java的异常处理头皮发麻,那就进来吧

目录: 1.异常概念 2.异常架构 3.受检查异常和不受检查异常 4.异常处理综合概括 5.JVM 是如何处理异常的 6.抛出异常,声明异常和捕获异常 7.finally 8.throw和throws的区别 9.异常注意点 10.关于异常编程习惯 1.异常概念 简单说就是不正常运行,最终导致JVM的非正常停止。 异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。J...

记录博主学到的点滴 1689
上一篇: 构造方法中的异常清理
下一篇: java包与jar文件
bryantd
博客等级 码龄22年 7粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值