java编程思想9 . 8 违例匹配

从Java8到Java21各版本新特性详解 上面这张图是 Oracle 官方给出的 Oracle JDK 支持的时间线,可以看出,JDK 17的支持时间最长,可以延续到2029年9月。考虑到技术更新的速度,这次免费商用8年的时间可谓是经过精心考虑,旨在让用户放心地升级到JDK 17(不过JDK 8的支持时间更长,可以延续到2030年12月)。从JDK诞生到现在,仅有几个版本得到了长期支持,主要包括JDK 7、JDK 8、JDK 11以及即将发布的JDK 17,它将是继Java 8之后最重要的LTS版本,是Java社区八年努力的成果。 阅读详情
9 . 8 违例匹配
“掷”出一个违例后,违例控制系统会按当初编写的顺序搜索“最接近”的控制器。一旦找到相符的控制
器,就认为违例已得到控制,不再进行更多的搜索工作。
在违例和它的控制器之间,并不需要非常精确的匹配。一个衍生类对象可与基础类的一个控制器相配,如下
例所示:
//: Human.java
// Catching Exception Hierarchies
class Annoyance extends Exception {}
class Sneeze extends Annoyance {}
public class Human {
public static void main(String[] args) {
try {
throw new Sneeze();
} catch(Sneeze s) {
System.out.println("Caught Sneeze");
} catch(Annoyance a) {
System.out.println("Caught Annoyance");
}
}
} ///:~
Sneeze 违例会被相符的第一个catch 从句捕获。当然,这只是第一个。然而,假如我们删除第一个catch 从
句:
try {
throw new Sneeze();
} catch(Annoyance a) {
System.out.println("Caught Annoyance");
}
那么剩下的catch 从句依然能够工作,因为它捕获的是Sneeze 的基础类。换言之,catch(Annoyance e)能捕
获一个Annoyance 以及从它衍生的任何类。这一点非常重要,因为一旦我们决定为一个方法添加更多的违
例,而且它们都是从相同的基础类继承的,那么客户程序员的代码就不需要更改。至少能够假定它们捕获的
是基础类。
若将基础类捕获从句置于第一位,试图“屏蔽”衍生类违例,就象下面这样:
try {
throw new Sneeze();
} catch(Annoyance a) {
System.out.println("Caught Annoyance");
} catch(Sneeze s) {
System.out.println("Caught Sneeze");
Pyside6实战:3种.ui文件加载方式对比(附完整代码示例) 本文深入解析Pyside6中3种.ui文件加载方式的优劣与性能优化策略,包括动态加载QUiLoader、预编译方案及混合策略。通过实测数据和完整代码示例,帮助开发者根据项目需求选择最优解,提升界面加载效率与内存管理。 阅读详情

相关推荐

Codesys电子凸轮Cam表实战:从可视化配置到程序化构建

本文详细介绍了Codesys电子凸轮Cam表的实战应用,从可视化配置到程序化构建的全过程。通过包装机和印刷机案例,解析Cam表的基础设置、调试技巧及动态构建方法,帮助工程师快速掌握电子凸轮技术,提升运动控制精度和效率。

weixin_29309785的博客 298

java异常捕获的一点感悟

class Annoyance extends Exception {} class Sneeze extends Annoyance {} class Human { public static void main(String[] args) throws Exception { try { try { throw new Sneeze(); } ...

xinfei0803的专栏 6724

Huber损失函数中的阈值δ是如何确定的?

Huber损失函数通过阈值δ将误差划分为两部分:当误差小于等于δ时,采用平方损失(MSE),以保持对小误差的敏感性;当误差大于δ时,采用线性损失(MAE),以降低异常值对模型的影响。

百态·数智思维 | 聚焦大数据、量化与未来AI 1930

class Annoyance extends Exception_多态

class Annoyance extends Exception {} class Sneeze extends Annoyance {} class Human { public static void main(String[] args) throws Exception { try { try { throw new Snee...

abc4081997的博客 687

HT7036计量芯片SPI通信与数据读取实战解析

本文详细解析HT7036计量芯片的SPI通信与数据读取实战,涵盖SPI时序配置、命令发送、数据读取及常见问题排查。重点介绍如何通过SPI接口与MCU通信,实现电能数据的稳定采集与处理,为智能电表等应用提供实用解决方案。

vscode5coder的博客 264

VCS和UVM常用编译选项

VCS编译选项 -full64 在64bit模式下编译、仿真,用于64位操作系统 -j8 指定编译器可以并行编译的进程数为8 -timescale=1ns/1ps 指定仿真时间和精度 +libext+.v+.V+.sv+.svh 识别.v、.sv、.svh等多种格式文件 -sverilog 支持system verilog 编译 -f xxx.lisf 指定包含所有设计文件列表的文件名 -top test 设置顶层模块为test。(指包含.

qq_40571921的博客 9934

java中异常处理中的异常匹配

先贴上代码:class Annoyance extends Exception{}class Sneeze extends Annoyance{}public  class test {    public static void main(String[] args) {        //catch实际对象        try{            throw new Sneeze(); ...

kongshaohao的博客 1158

中国裁判文书网案例批量爬取

本文介绍了某法院网站数据采集的技术研究过程,主要包含JS逆向分析和数据解密方法。通过开发者工具分析发现页面数据经过加密处理,重点研究了ciphertext等加密参数的生成逻辑。文章详细记录了定位加密函数、扣取加密代码、解密数据处理的全流程,并验证了解密方法的有效性。研究过程中强调了技术使用的法律边界,明确声明仅用于合法技术研究,禁止任何非法数据爬取行为。最终实现了加密数据的成功解密,并解释了各请求参数的作用,为后续数据清洗和存储奠定了基础。

2303_80825459的博客 816

25.JAVA编程思想——标准Java违例

25.JAVA编程思想——标准Java违例 Java 包含了一个名为Throwable的类,它对可以作为违例“掷”出的所有东西进行了描述。Throwable 对象有两种常规类型(亦即“从Throwable 继承”)。其中,Error 代表编译期和系统错误,我们一般不必特意捕获它们(除在特殊情况以外)。Exception 是可以从任何标准Java 库的类方法中“掷”出的基本类型。此外,它们亦可从我

badman250的专栏 3万+

HBase骚操作之数据加载方式BulkLoad

本文研究了一种HBase BulkLoad的入库方式,该方式利用HBase的数据信息按照特定格式存储在hdfs内这一原理,直接在HDFS中生成持久化的HFile数据格式文件,然后上传至合适位置,即完成巨量数据快速入库的办法。该方式配合MapReduce完成,高效便捷,而且不占用Region资源,增添负载,在大数据量写入时能极大的提高写入效率,并降低对Hbase节点的写入压力。HBase BulkLoad对于异构数据源的合并及大量数据一次性导入具有重要指导意义,相比HBase Put操作在性能上具有较高的优势

石榴姐yyds 7789

Python爬虫实战:模拟登录B站 – 处理Cookie和加密参数

由于B站在登录过程中采用了多种安全措施,包括加密的请求参数和cookie验证,模拟登录成为一项具有挑战性的任务。首先,我们需要获取B站的登录页面,并解析出其中的CSRF令牌和其他隐藏的字段。B站的登录接口通常会包含一些动态的加密参数,我们需要在登录前通过GET请求获取这些信息。本文详细介绍了如何使用Python模拟登录B站,解决加密参数的处理、图形验证码的识别以及登录后的数据抓取。库中的加密方法加密登录请求中的密码。一旦登录成功,我们可以通过维护会话状态,抓取登录后的数据,如个人主页、评论、观看记录等。

2201_76125261的博客 1309

java关于异常处理的题_一道面试题,关于java的异常处理的

class Annoyance extends Exception {}class Sneeze extends Annoyance {}class Human {public static void main(String[] args)throws Exception {try {try {throw new Sneeze();}catch ( Annoyance a ) {System.ou...

weixin_39735247的博客 144

060、模型蒸馏:把扩散模型压进单步的魔法

《端侧文生图模型蒸馏实战:从32步到1步的优化之道》摘要:针对边缘设备部署难题,本文分享了扩散模型蒸馏的核心经验。通过重构损失函数(感知损失+对抗训练+KL散度)、优化采样轨迹截取策略和改造学生模型架构,成功将Stable Diffusion压缩至单步推理。关键发现包括:小批量训练更有效、标签平滑保障生成多样性、双模型策略平衡质量与速度。在Cortex-A53芯片上实现300ms内生成,内存占用控制在200MB以下。特别强调工业部署需权衡压缩率与稳定性,建议保留迭代模式开关以适配不同场景需求。

2601_95651806的博客 150

java8和java9的对比

一:Java9比Java8的改进 1)引入了模块系统:采用模块化系统,这样的话这些应用程序只需要所需的那部分JDK模块, 而非是整个JDK框架了,减少了内存的开销。 2)引入了一个新的package:java.net.http;提供了对Http访问很好的支持,不仅支持 Http1.1而且还支持HTTP2。 3)引入了jshell这个交互性工具,让Java也可以像脚本语言一样来运行,可以从控制台启动 jshell ,在jshell 中直接输入表达式并查看其执行结果。 4)增加了List.of()、Set.of

учёба 4097

怀旧版电脑GBC模拟器

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java 8与Java9新特性比较

java8与java9新特性比较属性java8之前java8java9接口接口不可以创建构造器,其中方法全为抽象方法接口的成员变量均用public修饰允许在接口添加非抽象方法,使用defalut关键字即可可私有接口的方法,默认和静态方法更好的共享接口的私有方法,若私有方法为静态该方法属于这个接口,不为静态则只能被该接口的实例调用public interface NameOfInterface{ ...

LCF_lxf_ldy的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【汇总】Java 7, 8 ,9 , 10的新增特性

Java 7的那些语法糖 http://blog.csdn.net/chenleixing/article/details/47802653 1.switch可以接受string类型而不像以前仅仅是int; 2.异常catch可以一次处理完而不像以前一层层的surround; 3.泛型类实例化也不用繁琐的将泛型声明再写一遍; 4.文件读写 会自动关闭流而不像以前那样需要...

TTKatrina的博客 3076

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

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

Java中的JDK8及后续的重要新特性

函数式接口:接口中有且仅有一个抽象方法,但是可以有多个其他的方法检测某个接口是否是函数式接口// 只有一个抽象方法void eat();// 可以有多个默认方法// 可以有多个静态方法面向对象思想:强调对象如何完成任务函数式编程思想:强调是否完成任务(参数列表) -> {// 方法体(参数列表):表示重写的方法对应的参数,此位置可以省略参数类型保留参数名,如果只有一个参数,则还可以省去参数列表的括号()->:将参数列表传入到方法体{}:定义重写方法的方法体。

小何代码咖啡馆 1397

java两个list快速匹配优化_Java8 Stream对两个 List 遍历匹配数据的优化处理操作

使用场景,有两个List>集合,第一个集合的所有元素都是需要保留的。第一个集合的值为:{name=张三丰1, id=1}{name=张三丰2, id=2}{name=张三丰3, id=3}{name=张三丰4, id=4}{name=张三丰5, id=5}{name=张三丰6, id=6}{name=张三丰7, id=7}{name=张三丰8, id=8}第二个集合的值为:{grade=61...

weixin_28699983的博客 2757

Java 进化之路:从 Java 8 到 Java 21 的重要新特性(深度解析)

从Java 8到Java 21的13年间,Java不仅没有老去,反而通过持续创新焕发新生!建议开发者至少每两年关注一次新版本特性,但也不用盲目追新——根据项目实际情况选择合适的版本才是王道。(行动号召)现在就用看看你的当前版本,是时候规划升级路线图啦!

gskks6655661的博客 1075

Java8/9/10/11新特性

Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码。) 是一个容器类,它可以保存类型T的值,代表这个值存在。简单的说,在Java8中,Lambda表达式就是一个函数式接口的实例。java8中要创建一个只读、不可改变的集合,必须构造和分配它,然后添加元素,最后包装成一个不可修改的集合。,可以用来将数据直接传输到 OutputStream,这是在处理原始数据流时非常常见的一种用法,如下示例。它可以接收任意数量的参数。

qq_45606619的博客 1267

java8两个list中发数据比较_Java8 Stream对两个 List 遍历匹配数据的优化处理操作

使用场景,有两个List>集合,第一个集合的所有元素都是需要保留的。第一个集合的值为:{name=张三丰1, id=1}{name=张三丰2, id=2}{name=张三丰3, id=3}{name=张三丰4, id=4}{name=张三丰5, id=5}{name=张三丰6, id=6}{name=张三丰7, id=7}{name=张三丰8, id=8}第二个集合的值为:{grade=61...

weixin_39713335的博客 1万+

超越Java 8:instanceof的模式匹配

开发人员和Java专家概述了Java的最新版本中的instanceof运算符,以及如何使用它来改进您的代码。 介绍 根据一些调查(如JetBrains的出色调查),尽管Java 8是2014年发行的,但它目前是使用最多的Java版本。 本文是系列文章中的第一篇,标题为“超越Java 8”,其灵感来自于我的《Java for Aliens》一书的内容。这些文章将引导读者逐步探索从Java 9引入的最重要的功能。其目的是使读者了解从Java 8向前迈进的重要性,并说明最新的Java带来的巨大优势。语言版本。 在

weixin_46699878的博客 1656

esformatter管道pipe教程:串联strip-debug等CLI工具打造完整代码处理流水线

esformatter 是一款专业的 JavaScript 代码格式化工具(ECMAScript code beautifier/formatter),除了内置的缩进、换行与空白控制外,它还提供了 pipe 管道功能:在配置文件中声明一组 CLI 命令,就能把 strip-debug 等独立工具与 esformatter 串联成一条完整的代码处理流水线,一次运行即可完成「预处理 → 格式化 → 后

gitblog_00159的博客 796

【八股文】Java8新特性Java8至今所有版本新特性

Java新特性,Java8新特性,Java9新特性,Java10新特性,Java11新特性,Java12新特性,Java13新特性,Java14新特性,Java15新特性,Java16新特性,Java17新特性,Java18新特性,Java19新特性,Java20新特性,Java21新特性,Java22新特性,Java23新特性,Java24新特性,Java25新特性

白给卢的博客 1133

都在用 Java8 或 Java17,那 Java9 到 16 呢?他们真的没用吗?

为什么大家都在用 Java 8 或 Java 17,却很少听说有人用 Java 9 到 16?其实不是这些版本不好,而是 Oracle 改了发布规则,新特性先在这些版本预览打磨,成熟后才集成到 Java 17。它们默默铺路,成就了今天的现代 Java。

qq_31676725的博客 902
上一篇: java编程思想读书笔记 9 . 6 用f i n a l l y 清除
下一篇: Java 并发工具包 java.util.concurrent 用户指南
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值