JAVA的异常处理
S1.捕捉异常
A.捕捉异常的格式
看一个例子
输出结果
S2.针对几种异常的问题反馈
仔细看以下例题
下面是其输出结果:
当面临try中有多个异常时,我们一般会多个catch与之对应的catch捕获
try会从上往下和catch的进行匹配,若try中遇到了问题,try下面的其他代码不会执行,
直接跳转到对应的catch当中,执行其中的语句体。若没有对应的catch与之匹配,就会交给虚拟机处理。
而写多个catch的意义在于,针对一个异常,要能够将其捕获。
//若我们要捕获多个异常,在这期间存在多个父子关系的话,那父类一定要写在下面
(Exception e)所有的异常都能被Exception接收,
Exception是所有异常的父类
Exception e= new ArrayIndexOutOfBoundsException(上面的例题)
若try中的异常没有被catch捕获,那么try...catch的代码白写了
(原来什么样现在还是什么样),交给虚拟机运行
例题
建立几个一维数组,输出某一个索引
使用CTRL + ALT + T 快捷键将try...catch 包裹该代码块(可能有异常的代码块)
使用getMessage方法返回异常消息的字符串;
输出getMessage方法的内容。
常用的三个Throwable的成员方法
使用try...catch代码块查询可能异常的代码
使用printStackTrace方法(其底层是使用System.err.println)将错误信息输出在控制台
输出结果如图所示
简单拓展
err.与 out.的使用区别
可以以红色字体打印语句(并非是错误的程序代码)
S3.自定义异常
方法及其步骤:
1.创建自定义异常类;
2.在方法中通过throw关键字抛出异常对象;
3.在抛出的异常方法中处理异常,使用try-catch语句块捕获可能存在的异常,
并处理异常。
自定义一个avg方法,用于求num1和num2的平均值,对于num1和num2的取值,使用if语句
判断是否大于0或者小于100,
将avg方法在主函数中进行调用,使用try...catch捕捉异常
使用 throw 抛出异常,将异常抛给调用avg的对方,使用抛异常,输出自定义异常
(实现在输出异常后不继续输出结果)
CSDN-Ada助手: 哇, 你的文章质量真不错,值得学习!不过这么高质量的文章, 还值得进一步提升, 以下的改进点你可以参考下: (1)使用标准目录;(2)文章不宜太短;(3)增加内容的多样性(例如使用标准目录、标题、图片、链接、表格等元素)。
CSDN-Ada助手: 推荐 Java 技能树:https://edu.csdn.net/skill/java?utm_source=AI_act_java
CSDN-Ada助手: 恭喜你这篇博客进入【CSDN每天最佳新人】榜单,全部的排名请看 https://bbs.csdn.net/topics/613535382。