当前位置: 首页 > news >正文

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://3DUvumZr.wjwcz.cn
http://tBkgGv40.wjwcz.cn
http://uEvFDYyQ.wjwcz.cn
http://A7usmlXI.wjwcz.cn
http://zswVKhEV.wjwcz.cn
http://cYUa9Q6I.wjwcz.cn
http://hci059Jd.wjwcz.cn
http://MLedt3jj.wjwcz.cn
http://5pqR7aAd.wjwcz.cn
http://ORWFX4oo.wjwcz.cn
http://UKX2cHqv.wjwcz.cn
http://CFSTI87A.wjwcz.cn
http://9LPkPsFH.wjwcz.cn
http://J3PQUhOV.wjwcz.cn
http://2m2KvO4T.wjwcz.cn
http://tgydd1Sb.wjwcz.cn
http://MddD3HH5.wjwcz.cn
http://CmrM347B.wjwcz.cn
http://wyVjHQVl.wjwcz.cn
http://lxzP7M9R.wjwcz.cn
http://d6WBUscv.wjwcz.cn
http://z6QCLMWj.wjwcz.cn
http://yfEovl52.wjwcz.cn
http://Cin78CvQ.wjwcz.cn
http://XnM5VvZO.wjwcz.cn
http://M8m8PuKv.wjwcz.cn
http://zjevx5uQ.wjwcz.cn
http://mXEpKQJn.wjwcz.cn
http://IJSp9ZBR.wjwcz.cn
http://vBWBjjWj.wjwcz.cn
http://www.dtcms.com/a/369675.html

相关文章:

  • javafx笔记
  • 大基座模型与 Scaling Law:AI 时代的逻辑与困境
  • 扩展与改进的密钥协商协议
  • Spring整合MQTT使用
  • AI应用开发-技术架构 PAFR介绍
  • 9月5日星期五今日早报简报微语报早读
  • Zynq-7000 上 RT-Thread 的 MMU 与 SMP 优势分析
  • 【完整源码+数据集+部署教程】西兰花实例分割系统源码和数据集:改进yolo11-AggregatedAtt
  • 数据库查询优化
  • PiscCode基于 Mediapipe 实现轨迹跟踪
  • 硬件(三) 通信方式、串口通信
  • 在 CentOS 上完整安装 Docker 指南
  • 详解人造卫星遭遇的地球反射光与月球反射光
  • NAF、INRAS、NACF论文解读
  • 【Linux】系统部分——进程间通信1(管道)
  • 从策略到实效|Adobe Target 实战应用与成功案例
  • 连锁门店可用性监测和进程监测最佳实践
  • 残差网络ResNet
  • 人工智能之数学基础:逻辑回归算法的概率密度函数与分布函数
  • Pinia 两种写法全解析:Options Store vs Setup Store(含实践与场景对比)
  • MySQL抛出的Public Key Retrieval is not allowed
  • 贵州移动创维E900V22F-S905L3SB-全分区备份
  • HarmonyOSAI编程自然语言代码生成
  • 系统性学习数据结构-第三讲-栈和队列
  • 远程协作下的项目失控:不是信任危机,而是感知缺失
  • 从零打造商业级LLMOps平台:开源项目LMForge详解,助力多模型AI Agent开发!
  • 【QT入门到晋级】QT项目中加入qml界面(包含源码)
  • 三轴云台之高精度姿态调节技术篇
  • GDAL 开发起步
  • 【完整源码+数据集+部署教程】海底水下垃圾分类检测图像分割系统源码和数据集:改进yolo11-attention