java异常

编译时异常

必须要手动抛出,否则代码报错,提醒程序员检查本地配置

运行时异常 

代码出错,而导致程序出现问题

异常的作用

1,查询bug关键参考信息

2,异常可以作为方法的返回值,用于通知调用者执行情况,相较于直接打印更明显,打印是白字

        使用throw new 异常对象;

看报错的技巧,看红色部分即可,at从下往上看

异常处理方式

1,JVM默认处理方式

以红的字打印在控制台,程序停止运行,下面的代码不在执行

把异常名字,异常原因及异常出现的位置输出在控制台

2,自己处理(异常捕获)

好处:当代码出现异常时,可以让程序继续往下执行

问题1

问题2

写多个catch时,父类的异常要写在下面,不然报错。

Java的catch块是按​​从上到下顺序匹配​​的,一旦某个catch块匹配成功,后续的catch块就会被忽略。​​如果父类异常(如Exception)写在前面​​,它会捕获所有子类异常(如NullPointerExceptionIOException等),导致子类异常的catch块永远无法执行。

子类在前,父类在后​​,可以确保更具体的异常优先被处理,通用异常作为兜底。

问题3

就是catch里的异常对象不能接收try抛出的异常(没有父子关系),所以将这个异常交给虚拟机处理。

问题4

IDEA快捷生成包裹代码:先选中再ctrl+alt+t

异常常用方法

异常的子类,​​自动拥有父类所有非私有(publicprotected)的方法,也可以使用以下方法。

其中printStackTrace方法用的最多,其底层使用了System.err,这是一个错误输出语句

System.err.println("我错了!!!!");

//只需了解,还有一个细节,在和正常打印语句一起执行时,打印的顺序可能会乱,与多线程有关。

3,抛出异常 throw/throws

运行时异常可以省略不写

什么时候抛出,什么时候捕获??

抛出:告诉调用者出错了,更多写在方法里面

捕获:不让程序停止,更多写在方法调用处

自定义异常

没有异常能完美表达我现在出的异常,我看其他异常咋写的

创建步骤:

1,自定义异常类。类名要见名知意

2,写继承关系。运行时异常继承运行时异常RuntimeException,编译异常继承Exception

3,写空参构造器

4,写带参构造器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值