Java中的异常知识点整理

异常

1.生活中的异常

在了解程序的异常之前先了解一下生活中的异常什么情况?

假设我们每天开车去上班,从出发到抵达大概需要半小时,但万一发生了意外,睡过头了,或者路上堵车,那么必然会导致迟到,无法达到预期的目的,出现了不平常的状况,就是异常发生了。

2.程序中的异常

程序中报错的提示

ArrayIndexOutOfBoundsException 数组越界异常

ClassCastException 类型转换异常

ClassNotFoundException 类找不到异常

NullPointerException 空指针异常 NPE


假如我写一个计算除法的代码

int result = 0;
Scanner input = new Scanner(System.in);
syso{"输入被除数"}
int num1 = int.nextInt();
syso{"输入除数"}
int num2 = int.nextInt();
result = num1/num2;
syso{num1+"/"+num2+"="+result}

如果我不按照数据类型int来输入数字,而是输入字符串类型,那么程序一定会报错,而异常就是指在程序运行过程中发生不正常事件时,它会中断正在运行的程序。

3.Java中的异常处理

Java语言提供了五个关键字来为程序提供处理错误能力
trycatchfinallythrowthrows
在这里插入图片描述

3.1-try-catch块捕获异常
try{
	// 可能出现异常问题的代码断
}catch(捕获的异常类型 名){
	// 对异常进行处理的代码断
}

添加了异常处理机制后,程序会分为以下三种情况:
1.程序正常运行,没有异常
正常执行try中的try-catch后的代码,不会执行catch中的代码。
2.出现了对应的异常
执行try代码时,如果出现了异常,try中的代码不会再往下执行,JVM会立刻创建对应的异常对象(new XXXException),在catch块中可以被声明的异常抓获(前提是能抓住)然后就可以执行异常处理代码,最后正常执行之后的代码。
3.出现了不对应的代码
catch中的异常类型不匹配,则无法传入,也就无法进行异常处理,程序中断(和没有添加异常处理一个效果

3.2-多重catch块捕获异常
try{
    // 可能出现异常的代码段
}catch(异常类型1){
    // 对应处理代码
}catch(异常类型2){
    // 对应处理代码
}catch(){
    .....
}

类似于多重if,只要满足其中一个异常类型,剩下的异常捕获不会执行。
多重catch块主要运用在:需要对不同的异常进行不同处理操作时,需要用到多重catch。

3.3-try-catch-finally

加入了finally后,finally中的代码,无论程序是否异常都会执行。
finallyreturn同时出现时,会先执行finally中的代码再去执行return
在这里插入图片描述

4.抛出异常

除了系统自动抛出异常外,有些问题需要程序员自己抛出异常,使用throw关键字抛出。在这里插入图片描述

5.异常的体系结构

在这里插入图片描述
ThorwableError(程序无法修复 必须人工修改)

Exception(可通过代码/程序进行动态修复的)

Checked(受检异常:编写出来就提示你进行解决)

Runtime(运行时异常:代码执行过程中出现的异常,有时候不需要修复,

inputMismatchException

ArthimaticException

ArraylndexOutOfBoudsExcePtion

都属于运行时异常

6.log4j(log for Java)

6.1-为什么使用log4j?
  • 如何实现以文件形式记录异常信息以及程序正常运行关键步骤信息
  • 使用开源日志记录工具—log4j来实现
    在这里插入图片描述
6.2-日志分类
  • SQL日志
  • 异常日志
  • 业务日志
6.3-什么是 log4j?

log4japache实现的一个开源日志组件
在这里插入图片描述

6.4-如何使用log4j记录日志?

1.导包 将jar包变成小奶瓶

​ 2.配置log4j 通过log4j.properties 放在src目录下

​ 3.使用API进行日志记录

​ Logger logger = Logger.getLogger(字节码对象:类名.class);

logger.info();

​ logger.error();

​ logger.debug();

  • 使用步骤
    1.在项目下新建一个lib文件夹
    在这里插入图片描述
    2.在lib文件夹下拷贝好log4j的jar包
    在这里插入图片描述
    3.将jar包添加到项目的类库中
    在这里插入图片描述
    什么是jar包?
    jar包就是别人将自己写好的类进行打包,上传到开源社区,你可以将这些jar包引入你自己的项目中,然后就可以使用jar包中的类和属性了,一般都会将这些jar包放在自己新建的lib目录下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值