网站移动端推广佛山网站建设熊掌号

news/2025/10/8 17:33:27/文章来源:
网站移动端推广,佛山网站建设熊掌号,哪有备案好的网站,图片文字制作只针对不正常的情况才使用异常 异常只应该被用于不正常的条件#xff0c;它们永远不应该被用于正常的控制流。《阿里手册》中#xff1a;【强制】Java 类库中定义的可以通过预检查方式规避的RuntimeException异常不应该通过catch 的方式来处理#xff0c;比如#xff1a;Nu…只针对不正常的情况才使用异常 异常只应该被用于不正常的条件它们永远不应该被用于正常的控制流。《阿里手册》中【强制】Java 类库中定义的可以通过预检查方式规避的RuntimeException异常不应该通过catch 的方式来处理比如NullPointerExceptionIndexOutOfBoundsException等等。 比如在解析字符串形式的数字时可能存在数字格式错误不得通过catch Exception来实现 代码1 if (obj ! null) {//... }代码2 try { obj.method(); } catch (NullPointerException e) {//... }主要原因有三点 异常机制的设计初衷是用于不正常的情况所以很少会会JVM实现试图对它们的性能进行优化。所以创建、抛出和捕获异常的开销是很昂贵的。把代码放在try-catch中返回阻止了JVM实现本来可能要执行的某些特定的优化。对数组进行遍历的标准模式并不会导致冗余的检查有些现代的JVM实现会将它们优化掉 在 finally 块中清理资源或者使用 try-with-resource 语句 当使用类似InputStream这种需要使用后关闭的资源时一个常见的错误就是在try块的最后关闭资源。 错误示例 public void doNotCloseResourceInTry() {FileInputStream inputStream null;try {File file new File(./tmp.txt);inputStream new FileInputStream(file);// use the inputStream to read a file// do NOT do thisinputStream.close();} catch (FileNotFoundException e) {log.error(e);} catch (IOException e) {log.error(e);} } 问题就是只有没有异常抛出的时候这段代码才可以正常工作。try 代码块内代码会正常执行并且资源可以正常关闭。但是使用 try 代码块是有原因的一般调用一个或多个可能抛出异常的方法而且你自己也可能会抛出一个异常这意味着代码可能不会执行到 try 代码块的最后部分。结果就是你并没有关闭资源。 所以你应该把清理工作的代码放到 finally 里去或者使用 try-with-resource 特性。 方法一使用 finally 代码块 与前面几行 try 代码块不同finally 代码块总是会被执行。不管 try 代码块成功执行之后还是你在 catch 代码块中处理完异常后都会执行。因此你可以确保你清理了所有打开的资源。 public void closeResourceInFinally() {FileInputStream inputStream null;try {File file new File(./tmp.txt);inputStream new FileInputStream(file);// use the inputStream to read a file} catch (FileNotFoundException e) {log.error(e);} finally {if (inputStream ! null) {try {inputStream.close();} catch (IOException e) {log.error(e);}}} } 方法二Java 7 的 try-with-resource 语法 如果你的资源实现了 AutoCloseable 接口你可以使用这个语法。大多数的 Java 标准资源都继承了这个接口。当你在 try 子句中打开资源资源会在 try 代码块执行后或异常处理后自动关闭。 public void automaticallyCloseResource() {File file new File(./tmp.txt);try (FileInputStream inputStream new FileInputStream(file);) {// use the inputStream to read a file} catch (FileNotFoundException e) {log.error(e);} catch (IOException e) {log.error(e);} } 尽量使用标准的异常 代码重用是值得提倡的这是一条通用规则异常也不例外。 重用现有的异常有几个好处 它使得你的API更加易于学习和使用因为它与程序员原来已经熟悉的习惯用法是一致的。对于用到这些API的程序而言它们的可读性更好因为它们不会充斥着程序员不熟悉的异常。异常类越少意味着内存占用越小并且转载这些类的时间开销也越小。 Java标准异常中有几个是经常被使用的异常。如下 异常使用场合IllegalArgumentException参数的值不合适IllegalStateException参数的状态不合适NullPointerException在null被禁止的情况下参数值为nullIndexOutOfBoundsException下标越界ConcurrentModificationException在禁止并发修改的情况下对象检测到并发修改UnsupportedOperationException对象不支持客户请求的方法 虽然它们是Java平台库迄今为止最常被重用的异常但是在许可的条件下其它的异常也可以被重用。例如如果你要实现诸如复数或者矩阵之类的算术对象那么重用ArithmeticException和NumberFormatException将是非常合适的。如果一个异常满足你的需要则不要犹豫使用就可以不过你一定要确保抛出异常的条件与该异常的文档中描述的条件一致。这种重用必须建立在语义的基础上而不是名字的基础上。 最后一定要清楚选择重用哪一种异常并没有必须遵循的规则。例如考虑纸牌对象的情形假设有一个用于发牌操作的方法它的参数(handSize)是发一手牌的纸牌张数。假设调用者在这个参数中传递的值大于整副牌的剩余张数。那么这种情形既可以被解释为IllegalArgumentException(handSize的值太大)也可以被解释为IllegalStateException(相对客户的请求而言纸牌对象的纸牌太少)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931767.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设职业描述郑州网站免费制作

概述: el-switch 表示两种相互对立的状态间的切换,多用于触发「开/关」。 常见用法: 1、绑定v-model到一个Boolean类型的变量。可以使用active-color属性与inactive-color属性来设置开关的背景色。 2、使用active-text属性与inactive-tex…

塑料机械怎么做网站网站建设协议 模板

尽管 Hexo 支持 MarkDown,但是我们却不能像写单独的 MarkDown 文档时那样肆无忌惮。由于我们所写的文档是需要被解析为静态网页文件的,所以我们必须严格遵从 Hexo 的规范,这样才能解析出条理清晰的静态网页文件。新建文档 假设我们的文章名为…

HTML 速查列表 - 教程

HTML 速查列表 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…

Exp1

Experiment 1 实验任务1 1.1 #include <stdio.h> int main() {printf(" O \n");printf("<H>\n");printf("I I\n");printf(" O \n");printf("<H>\n&qu…

20_uv_wsl_installation

windows11 #wsl 在Windows 11 WSL上安装uv的完整指南 概述 uv是由Astral公司开发的现代化Python包管理器和项目管理工具,用Rust编写,提供极快的速度和统一的工具链,可替代pip、pip-tools和virtualenv。 安装方法 方…

学习问题日记-4

在学习Docker时候,安装完所有配置了,配置源使用的是阿里云的,然后在测试安装是否成功时候,执行了一下以下命令: docker run hello-world 结果遇到了以下报错: docker: Error response from daemon: Get "ht…

Codeforces Round 1042 (CF2131) 补题笔记(A-E)

A. Lever 预计难度:红。 考察:语法。 对于所有满足 \(a_i>b_i\) 的下标 \(i\),累计 \(a_i-b_i\) 再加上 \(1\) 就是结果。因为忽略操作 \(1\) 时还迭代了一次所以要加 \(1\)。点击查看代码 #include <bits/st…

在AI技术唾手可得的时代,挖掘新需求成为核心竞争力——某知名AI编程助手框架需求探索

本文深入分析了一个专注于提升AI编程助手体验的开源项目,探讨其核心功能定位、应用场景和使用方式,并基于大量用户反馈识别出潜在的创新需求方向,为AI编程工具的未来发展提供参考。内容描述 核心功能定位 该项目是一…

表格数据自动机器学习技术解析

本文介绍了AutoGluon Tabular开源库,这是一个面向表格数据的自动机器学习工具。通过该工具,开发者仅需编写少量代码即可利用深度学习技术构建应用程序,涵盖自动机器学习技术在图像、文本和表格数据集上的应用。Auto…

网站开发 工作量公司网站开发步骤

前面博主写了一篇文章去介绍opentsdb的http接口的使用方法,但是某一些接口的使用还是比较复杂&#xff0c;这篇文章会通过example来详细讲述opentsdb的一些特性。 本文的举的例子有这些&#xff1a; 基本的写入和查询数据的注释和说明子查询查询中的filters使用查询数据的rat…

外链提高网站权重沈阳男科私立医院

普源示波器是一种常用的电子测试设备&#xff0c;它可以测量电路中的电压和电流波形。其中&#xff0c;测量相位差是示波器的一个重要功能&#xff0c;它可以用于分析信号的时间延迟、相位差、频率响应等信息。本文将介绍普源示波器测量相位差的原理和方法&#xff0c;并通过实…

广州定制网站建设毕业设计做网站 答辩会问什么问题

1、添加记录(INSERT)使用SQL语句的INSERT命令可以向数据库中插入记录&#xff0c;INSERT命令的基本形式为&#xff1a;INSERT INTO 表名 [(字段名1,字段名2…)] VALUES (值1,值2,…)若在输入记录时&#xff0c;每个字段均有内容&#xff0c;可省略表名后的字段名。该SQL语句用于…

10/8

Java方法与递归学习实践总结 在Java方法章节的学习中,我最大的收获并非仅仅掌握了语法规则,而是体会到“结构化编程”背后的思维逻辑——用“方法”将复杂问题拆解、复用,用巧劲替代重复的蛮力,这与课件中“懒人造…

2025.10.8

file:///C:/Users/lenovo/Desktop/Java%20%E6%A0%B8%E5%BF%83%E5%9F%BA%E7%A1%80%E5%AE%9E%E9%AA%8C%E6%96%87%E6%A1%A310.8.docx

【QT】QString 与QString区别 - 教程

【QT】QString& 与QString区别 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

[Python/地图] 基于Python绘制地图

0 概述:基于Python绘制地图 1 基于 PyEcharts 绘制地图 PyEchart库pyecharts 是一个基于 百度开源的 Apache ECharts 的 Python 数据可视化库。ECharts 是一个使用 JavaScript 实现的开源可视化库,而 Pyecharts 则是…

常德网站开发哪家好如何制作自媒体短视频

全球领先的企业软件创新者VMware&#xff08;NYSE&#xff1a;VMW&#xff09; 今日在VMworld 2020大会上&#xff0c;宣布升级Tanzu对VMware Cloud on AWS、Azure VMware Solution 和Oracle Cloud VMware Solution的支持&#xff0c;同时与GitLab展开合作。在VMworld 2019美国…

【从前端到后端导入excel资料实现批量导入-笔记模仿芋道源码的《系统管理-用户管理-导入-批量导入》】

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

开发网站的基本原则网络购物平台有哪几个

在使用 Kotlin 和 Jetpack Compose 进行 Android 开发时&#xff0c;选择正确的单位来设置视图尺寸、间距和字体大小是非常重要的。这些单位确保应用在各种设备和屏幕尺寸上都能保持良好的布局和可读性。 三种常用的单位 1. Density-independent Pixels (dp) 用途&#xff1…