Java基础 9.5

1.异常处理

基本介绍

异常处理就是当异常发生的时候 对异常处理的方式

异常处理方式

try-catch-finally

程序员在代码中捕获发生的异常 自行处理

throws

将发生的异常抛出 交给调用者(方法)处理 最顶级的处理者是JVM

示意图

2.try-catch方式处理异常说明

Java提供try和catch块来处理异常 try块用于包含可能出错的代码 catch块用于处理try块中发生的异常 可以根据需要在程序中有多个try catch块

基本语法

try {可疑代码将异常生成对应的异常对象 传递给catch块
} catch (异常) {对异常处理
}
//如果没有finally 语法可以通过

注意事项

如果异常发生 则异常发生后面的代码不会执行 直接进入到catch块

如果异常没有发生顺序执行try代码块 不会进入到catch

如果希望不管是否发生异常 都执行某段代码(比如关闭连接 释放资源等)则使用finally{}

可以有多个catch语句 捕获不同的异常(进行不同的业务处理)要求父类异常在后 子类异常在前 比如(Exception在后 NullPointerException在前)如果发生异常 只会匹配一个catch

可以进行try-finally配合使用 这种做法相当于没有捕获异常 因此程序会崩掉 应用场景:执行一段代码 不管是否发生异常必须执行某个业务逻辑

3.小结

如果没有出现异常,则执行try块中所有语句,不执行catch块中语句,如果有finally,最后还需要执行finally里面的语句

如果出现异常,则try块中异常发生后,try块剩下的语句不再执行。将执行catch块中的语句,如果有finally,最后还需要执行finally里面的语句

4.练习

package com.logic.try_;import java.util.Scanner;/*** @author logic* @version 1.0*/
//如果用户输入的不是一个整数,就提示他反复输入,直到输入一个整数为止
public class Homework01 {public static void main(String[] args) {/*1.创建Scanner对象2.使用无限循环 去接收一个数3.将该输入的值 转成一个int4.如果在转换时 抛出异常 说明输入的内容不是一个可以转成int的内容5.如果没有抛出异常 break */Scanner scanner = new Scanner(System.in);int n1 = 0;String inputStr = "";while (true) {System.out.print("请输入一个整数: ");inputStr = scanner.next();System.out.println("输入完毕...");try {n1 = Integer.parseInt(inputStr);break;} catch (NumberFormatException e) {System.out.println("输入有误...");}}System.out.println("你输入的值是: " + n1);}
}

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

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

相关文章

B.50.10.06-NoSQL数据库与电商应用

NoSQL数据库核心原理与电商应用实战核心思想: NoSQL (Not Only SQL) 数据库是为了解决传统关系型数据库在超大规模数据、高并发和灵活数据模型方面的不足而设计的。它们通过牺牲部分一致性(通常是最终一致性)和事务的严格性,来换取极高的性能…

把开发环境丢云上,我的电脑风扇再也没转过!

Hello,兄弟们,我来啦作为一个天天搬砖的程序员,每天最让我心态爆炸的是啥?不是产品又改需求,也不是 Bug 藏得深,而是TMD——配!环!境!新项目 git clone 下来,…

驱动ft232h通信

FT232H是一个单通道USB 2.0高速(480Mb/s)转换为UART/FIFO IC,具有多种工业标准串行或并行接口配置能力。 1.实验板卡 FPGA型号: FT232H型号: FT232H SINGLE CHANNEL HI-SPEED USB TO MULTIPURPOSE UART/FIFO IC Da…

隔空盗刷、AI钓鱼、代理劫持…金融黑产竟进化至此?

【导读】中国工商银行发布的《2024网络金融黑产研究报告》,以深度洞察拆解黑产攻击“新变种”、勾勒防护新路径,自发布以来,成为金融安全行业的重要参考坐标。本文会提炼出报告中黑产攻击的五大技术演变与体系化防护思路,再结合金…

服务器为啥离不开传感器?一文看懂数据中心“隐形守护者”的关键角色

在现代数据中心或企业机房中,服务器不仅仅是“跑程序”的机器,它们还是一整套复杂系统的一部分。为了保证这些服务器稳定、高效、安全地运行,传感器成了不可或缺的角色。那么,服务器为啥要有传感器?这些传感器到底是干…

React JSX 语法讲解

🚀 React JSX 语法讲解 1. 课程概述 本课程旨在系统讲解 JSX(JavaScript XML) 的核心概念与实战应用。JSX 是 React 的核心语法扩展,它允许我们在 JavaScript 中编写类似 HTML 的结构,使得构建用户界面变得直观和高效。…

软件安装教程(四):在 Windows 上安装与配置 MATLAB(超详细)

文章目录前言1. 安装前准备(必看)2. 下载 MATLAB(推荐在线安装)3. 在 Windows 上安装(详细步骤)4. 激活 MATLAB(在线与离线)5. 首次启动与界面入门6. 推荐的基本配置(让环…

【运维自动化-标准运维】如何创建流程嵌套(子流程)

什么是子流程节点 标准运维里的流程节点有两类:标准插件节点和子流程节点。子流程节点实际上也是一个流程,比如某个业务线做全网更新时需要更新多个模块,那每个模块的更新流程可以称之为一个子流程。在总流程里直接添加子流程,就通…

clickhouse迁移工具clickhouse-copier

原来的集群没有高可用而且配置很低,所有准备将一个3分片1副本集群迁到1分片2副本的高配置集群,数据量比较大。 虽然官方已经标记clickhouse-copier已经过时,但为了方便和高效还是用了copier,效果还挺好 以下是使用步骤&#xff1a…

高频超声波传感器:以精准感知重塑未来科技生态

在智能制造的浪潮中,高频超声波传感器正以“隐形工程师”的角色,重新定义着工业检测、医疗诊断与环境监测的边界。这款融合了压电材料科学与微纳电子技术的精密仪器,凭借其亚毫米级测量精度与纳秒级响应速度,正在成为高端装备制造…

残差连接与归一化结合应用

残差连接(Residual Connection / Skip Connection)和归一化(Normalization)的结合,是现代深度学习模型(尤其是深度神经网络和Transformer架构)成功的关键因素之一。 核心概念回顾残差连接 (Resi…

K8s集群+Rancher Server:部署DolphinScheduler 3.2.2集群

本文手把手演示了如何在 K8s Rancher 环境中快速拉起一套生产可用的 Apache DolphinScheduler 3.2.2 集群。全文围绕“镜像加速、依赖本地化、存储持久化”三大痛点展开,附有详细的代码解析,收藏细看吧! 环境准备 1、软件准备2、环境规划部署…

查询语言的进化:SQL之后,为什么是GQL?数据世界正在改变

数据是现代世界的核心驱动力。 在数据驱动的世界里,查询语言就像人与数据沟通的桥梁。 如何高效地获取、操作和理解数据,取决于查询语言的演进。 自20世纪70年代关系型数据库兴起以来,SQL(Structured Query Language&#xff0…

AgentThink:一种在自动驾驶视觉语言模型中用于工具增强链式思维推理的统一框架

文章目录摘要1. 引言2. 相关工作2.1 自动驾驶中的语言模型2.2 自动驾驶中的视觉问答3. 方法3.1 数据生成流水线3.2 两阶段训练流程3.2.1 基于 SFT 的推理预热3.2.2 基于 RLFT 的推理增强3.3 推理与评估4. 实验4.1 主要实验结果4.2 工具使用分析4.3 消融实验4.4 泛化性评估5. 结…

Bug 排查日记:打造高效问题定位与解决的技术秘籍

一、引言在软件开发的漫漫征程中,Bug 如影随形,成为开发者们必须跨越的一道道障碍。它们或如微小的瑕疵,影响用户体验;或似隐藏的炸弹,引发系统故障,导致严重后果。高效排查 Bug,不仅是保障软件…

使用 Sentry 为 PHP 和 Web 移动小程序提供多平台错误监控

今天我在 reddit 上看到 Sentry 的推广,想到 19 年我第一次在公司自研产品b2b2c上使用 Sentry 的经历,后面在其他项目上多次使用Sentry,今天就顺手分享一下在 Laravel 项目中接入 Sentry 的实践心得。现代项目往往涉及 Web、移动端和小程序&a…

Python包管理工具全对比:pip、conda、Poetry、uv、Flit深度解析

在Python开发中,包的管理和使用是重要环节,现如今python包管理工具众多,如何选择合适的管理工具?常用的工具有pip、conda、Poetry、uv、Flit,下面这些工具进行详细对比分析。一、工具概览对比工具类型开发者主要特点适…

车载诊断架构 --- Service 14一丢丢小汇总

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做你把时间花在哪里,你的人生就在哪里。千万别看见别人发光,就觉得自己暗淡。人生如逆旅,你我皆行人。唯有不断阅己、越己、悦己才能活出生命的意…

Struts2 工作总结

一 in,在SQL中,IN 是一个条件操作符,用于指定多个可能的值,通常用在 WHERE 子句中。它的作用是检查某个字段的值是否在给定的值列表中,相当于多个 OR 条件的简写形式。不使用 IN(冗长)SELECT * …

MQTT 认证与授权机制实践(二)

四、实战案例:主流 Broker 的认证授权配置指南(一)EMQ X:企业级物联网 Broker 的安全方案1. 认证配置(用户名密码 证书)EMQ X 作为一款企业级物联网 Broker,在安全认证方面提供了丰富且灵活的配…