
学习时间2022年6月6日
异常一、异常的概念只要控制台红了,报错。。。遇到异常
- 程序中出险异常就会终止后续的语句
- 实际情况,我们需要解决异常,不能让程序直接终止
**过程正常,但是出险意外,**这就是异常
异常发生在程序运行期间,它影响了正常的程序执行流程
- Error和Exception都是Throwable的子类
- Error错误应该尽量避免
- Exception是未知因素的意外导致的
目前RuntimeException类异常是我们比较常见的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t7qFYwuL-1654507032260)(E:JavaProjectBaiduSyncdisk笔记本截图Throwable.png)]
2、Exception2.1 关键字 try 、catch、finally有5个相关的关键字 try 、catch、finally、throw、throws
语法如下
try
{
// 程序代码
} catch (ExceptionName 异常的变量名1){ // 异常名可以填写想要捕获的异常类型
//Catch 块
} finally {
// finnally代码块
}
IDEA生成代码块快捷键:ctrl + alt +T 选择对应的内容
如果要打印异常,可以使用异常的方法printStackTrace()
一个 try 代码块后面跟随多个 catch 代码块的情况就叫多重捕获。,语法如下
try{
// 程序代码
}catch(异常类型1 异常的变量名1){
// 程序代码
}catch(异常类型2 异常的变量名2){
// 程序代码
}catch(异常类型3 异常的变量名3){
// 程序代码
}
运行逻辑也从上到下依次检索异常
如果抛出异常的数据类型与 异常类型1 匹配,它在这里就会被捕获。如果不匹配,它会被传递给第二个 catch 块。
如此,直到异常被捕获或者通过所有的 catch 块。
主动抛出异常,一般用在方法中
在一个方法中,我们可以自定义情况用throw来抛出异常。用法如下
throw new RemoteException();
举例 ,比如除数不能为0 ,我们可以手动判断
void div(int a,int b) {
if (b == 0){
throw new ArithmeticException();
}
System.out.println(a/b);
}
如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。
写开源框架或者大型系统时,才需要用到
目前Java内置的异常可以描述在编程时出现的大部分异常。。。