异常值处置惩罚
异常概述异常:异常就是Java步伐在运行过程中出现的错误。
异常由来:问题也是现实生活中一个详细事件,也可以通过java 的类的形式进行描述,并封装成对象。其实就是Java对不正常情况进行描述后的对象表现。
我们见过的异常:角标越界异常、空指针异常。
异常分类图解
https://img2024.cnblogs.com/blog/3492102/202408/3492102-20240815210216360-1062894090.png
异常举例
[*]除数为0
[*]数组访问越界
JVM的默认处置惩罚方案
[*]把异常的名称,错误原因及异常出现的位置等信息输出在了控制台
[*]步伐停止执行
异常处置惩罚方案
[*]try…catch…finally
[*]throws
try…catch处置惩罚方式
一个异常的情况
多个异常的情况
平级情况
存在上下级的情况
JDK7的新特性及注意事项
举例
try {
int a = 10;
System.out.println(a / 2);// 可能抛出ArithmeticException()
} catch (ArithmeticException e) {
// 处理ArithmeticException
} finally {
// 无论try中的代码是否出现问题,这里的代码都会执行
System.out.println("好好学习,天天向上!");
}编译时异常和运行时异常的区别
Java中的异常被分为两大类:编译时异常和运行时异常。
[*]编译时异常:Java步伐必须表现处置惩罚,否则步伐就会发生错误,无法通过编译。
[*]运行时异常:无需表现处置惩罚,也可以和编译时异常一样处置惩罚。
finally的特点作用及面试题
finally的特点
[*]被finally控制的语句体一定会执行。
[*]特殊情况:在执行到finally之前JVM退出了(好比System.exit(0))。
finally的作用
[*]用于释放资源,在IO流操纵和数据库操纵中访问到。
finally相关的面试题
[*]final, finally和finalize的区别是什么?
[*]假如catch内里有return语句,叨教finally的代码还会执行吗?假如会,叨教是在return前还是return后。
Throwable中的方法
[*]getMessage():获取异常信息,返回字符串。
[*]toString():获取异常类名和异常信息,返回字符串。
[*]printStackTrace():获取异常类名和异常信息,以及异常出如今步伐中的位置。返回值void。
[*]printStackTrace(PrintStream s):通常用该方法将异常内容保存在日志文件中,以便查阅。
throws
定义功能方法时,需要把出现的问题袒暴露来让调用者去处置惩罚。那么就通过throws在方法上标识。
举例
[*]演示编译时异常和运行时异常的抛出
throw
在功能方法内部出现某种情况,步伐不能继续运行,需要进行跳转时,就用throw把异常对象抛出。
举例
[*]演示编译时异常对象和运行时异常对象的抛出
throws和throw的区别
[*]throws:用在方法声明后面,跟的是异常类名。可以跟多个异常类名,用逗号隔开。表示抛出异常,由该方法的调用者来处置惩罚。throws表示出现异常的一种大概性,并不一定会发生这些异常。
[*]throw:用在方法体内,跟的是异常对象名。只能抛出一个异常对象名。表示抛出异常,由方法体内的语句处置惩罚。throw则是抛出了异常,执行throw则一定抛出了某种异常。
我们到底该如何处置惩罚异常呢
原则:假如该功能内部可以将问题处置惩罚,用try。假如处置惩罚不了,交由调用者处置惩罚,这是用throws。
[*]后续步伐需要继续运行就try。
[*]后续步伐不需要继续运行就throws。
举例
[*]感冒了就自己吃点药就好了,try。
[*]吃了好几天药都没好结果得了新冠,那就的得throws到医院。
[*]假如医院没有殊效药就变成Error了。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]