Java基础-异常

本文深入解析Java中的异常处理机制,包括异常的分类(受检异常与非受检异常)、异常处理方式(try...catch、finally块)以及异常的抛出(throws与throw关键字)。通过具体示例,阐述了如何有效管理和响应程序运行中可能出现的各种异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.异常分类

受不受检:编译器报不报错

1)受检异常

就是非运行时异常。

外界因素造成,不是程序员的逻辑错误。

再怎么修改代码都不一定能杜绝

是编译器要求必须处理的异常,不处理则编译器会报错的异常。指的是程序在运行时由于外界因素造成的一般性异常。

例如:

没有找到指定名称的类:java.lang.ClassNotFoundException

访问不存在的文件:java.io.FileNotFoundException

操作文件时发生的异常:java.io.IOException

操作数据库时发生的异常:java.sql.SQLException

 

2)非受检异常

就是运行时异常。

程序员的逻辑错误。

修改代码一定能杜绝

编译器不要求必须处理的异常。是程序员应该积极避免其出现的异常

java.lang.RuntimeException及它的子类都是非受检异常。

例如:

错误的类型转换:java.lang.ClassCastException

数组下标越界:java.lang.ArrayIndexOutOfBoundsException

空指针访问:java.lang.NullPointerException

算术异常(除0溢出):java.lang.ArithmeticException

 

2.异常处理机制

1)try…catch捕获异常

所有的异常都继承于Exception

 

2)访问异常信息

e.printStackTrace();//将异常直接打印到控制台,但不会中断程序执行。

e.getMessage() ;//方法,用来获得有关异常事件的字符串信息。写日志的时候可能用。

 

3)使用finally回收资源(标准写法)

无论是否发生异常,都会执行finally里面这段代码。

try(){

}catch(){

}finally{

//input.close等。

}

即使有return,只要碰到return,也会跑完finally部分才会return

 

3.异常的抛出

1).throws关键字

使用throws关键字的方法,此方法不处理异常,由调用方处理。

 

2)throw关键字

可手动生成一个异常并主动抛出。

if (failToDoSth) {

    throw new Exception();

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值