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

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.xdnf.cn/news/20397.html

相关文章:

  • centos 系统如何安装open jdk 8
  • linux下快捷删除单词、行的命令
  • python中等难度面试题(1)
  • 基于cornerstone3D的dicom影像浏览器 第五章 在Displayer四个角落显示信息
  • C++数据结构命名:从规范到艺术的深度解析
  • CSDN个人博客文章全面优化过程
  • 不同行业视角下的数据分析
  • 计算机二级C语言操作题(填空、修改、设计题)——真题库(17)附解析答案
  • 打开Fiddler,浏览器就不能访问网页了
  • 超细汇总,银行测试-大额存单定期存款测试+面试(一)
  • 深度学习:归一化技术
  • Transformers 学习入门:注意力机制剖析
  • 行业了解05:制造业
  • 新启航开启深孔测量新纪元:激光频率梳技术攻克光学遮挡,达 130mm 深度 2μm 精度
  • Day21_【机器学习—决策树(1)—信息增益、信息增益率、基尼系数】
  • docker-compose跨节点部署Elasticsearch 9.X集群
  • 快速进行光伏设计的好方法!
  • 仓颉编程语言青少年基础教程:布尔类型、元组类型
  • 计算机网络IP协议
  • STM32H7的PA0_C、PA1_C、PC2_C、PC3_C的使用
  • Java线程池的几个常见问题
  • 会员体系搭建咋做?定位目标人群竟有这么多讲究
  • GJOI 9.4 题解
  • Qt---JSON处理体系
  • LeetCode_位运算
  • 安卓学习 之 EditText 控件
  • C/C++中的可变参数 (Variadic Arguments)函数机制
  • Linux学习-硬件(串口通信)
  • 【Android】SQLite使用——增删查改
  • 有哪些AI产品可以真正提高办公和学习效率?