学会认识Java中的一些Exception异常

概念:

是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。
异常分为Checked异常和运行时异常,Checked异常必须捕获或者声明抛出,运行时异常不要求必须捕获或者声明抛出。

异常处理:

Java编程语言使用异常处理机制为程序提供了错误处理的能力Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws。
try一定要有,catch和finally至少要有一个。
try–>执行可能产生异常的代码。
catch–>捕获异常。
finally–>无论是否异常代码块总会执行。
throws–>声明异常,声明某个方法可能抛出(其实是转移)的各种异常,多个异常用逗号隔开跟在参数列表后面。

通知调用者方式:

方式1:调用者处理异常。
方式2:调用者继续声明异常。
main()方法声明的异常由Java虚拟机处理:
throws与throw的区别:
throws:相当于甩锅,生成并抛出异常 声明方法内抛出了异常,不做任何处理而是将异常往上传。
throw: 位于方法体内部,可作为单独语句使用 必须跟在方法参数列表后面,不能单独使用。

try-catch–>分三种情况:

1)程序正常没有异常跳过catch块继续执行;
2)有异常,被捕获会继续执行后面代码,但是try里面异常代码后面的代码不会执行;
3)有异常,异常类型不匹配未捕获,程序中断。
多重catch块–>相当于if()else{}
排列catch 语句的顺序:先子类后父类
发生异常时按顺序逐个匹配
只执行第一个与异常类型匹配的catch语句
1、try-catch- finally块中,finally块唯一不执行的情况是什么?
System.exit(num)
2、强制退出Java虚拟机try-catch块中存在return语句,是否还执行finally块?
方法无返回值 会优先执行finally中的代码块 try–> catch–>finally代码块–>catch中的return跳出方法
方法有返回值且catch和finally都有return try–>catch return–>finally return
常见异常类型:

Exception -->所有异常父类
ArithmeticExceprion -->算数异常
ArrayIndexOutOfBoundsException -->数组下标越界异常
NullPointerException -->空指针异常
ClassNotFoundException -->不能加载所需的类
IllegalArgumentException -->非法参数异常
ClassCastException -->对象强制类型转换异常
NumberFormatException -->数字格式转换异常

自定义异常定义异常类–>继承父类实现,编写构造方法–>实例化自定义异常对象–>使用throw抛出

异常链:

异常链创建了新的异常但却保留了原有的异常信息

异常处理原则:

异常处理与性能异常只能用于非正常情况;
不要将过于庞大的代码块放在try中;
在catch中指定具体的异常类型;
需要对捕获的异常做处理。

猜你喜欢

转载自blog.csdn.net/weixin_44147632/article/details/107586371
今日推荐