关于异常常见问题总结

文章总结了Java中的异常处理机制,包括Error和Exception的区别,异常的分类,异常处理的格式,编译时异常与运行时异常的差异,异常的作用,JVM的默认处理方式,如何捕获和处理异常,以及throw和throws关键字的使用。同时提到了自定义异常的步骤,强调了异常处理对于程序健壮性的重要性。
摘要由CSDN通过智能技术生成

关于异常常见问题总结

Error:代表的系统级别错误(属于严重问题)

系统一旦出现问题。,sun公司会把这些错误封装成Error对象。Error是给sun公司自己用的,不是给我们程序员用的。因此我们开发人员不用管它。

Exception:叫做异常,代表程序可能出现的问题。

1、异常分为运行时异常和编译时异常

运行时异常:RuntimeException及其子类,编译阶段不会出现异常提醒,运行时出现的异常
编译时异常:编译阶段就会出现异常提醒

2、异常体系的最上层父类是谁?

Exception类

3、编译时异常和运行时异常的区别?

编译时异常:没有继承RuntimeException,直接继承于Exception,编译阶段就会有错误提示
运行时异常:RuntimeException本身及其子类,编译阶段没有错误,运行时出现的

4、异常的作用:

1、异常可以用来查询bug的关键参考信息
2、异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况

5、JVM默认处理异常的方式

1、把异常的名称,异常原因以及异常出现的位置等信息输出在控制台
2、程序终止运行,异常以下的代码不会执行

6、自己处理(捕获异常)

格式:

try{
//可能会出现异常的代码
}catch(ArrayIndexOutOfBoundsException){
//如果出现了ArrayIndexOutOfBoundsException异常,我们应该如何处理
}

捕获异常的好处:可以让程序继续往下执行,不会停止
ps:Try内的代码出现了异常,会产生一个对象,并将此对象跟catch小括号中对比,看括号中的变量是否可以接受这个对象,如果能被接受,该异常就被捕获,执行catch中的代码

7、如果try中没有遇到问题,怎么执行?

会把try里面的代码全部执行完毕,不执行catch中的代码

8、如果try中可能会遇到多个问题,怎么执行?

会写多个catch与之对应
细节:如果我们要捕获多个异常,这些异常如果存在父子关系,那么父类一定要写在最下面
在JDK7以后,我们可以在catch中同时捕获多个异常,中间用|隔开

9、如果try中的异常没有被捕获,怎么执行?

以虚拟机的默认方法执行

10、异常中的常见方法:

public String getMessage() 返回此throwable的详细消息字符串

public String toString() 返回此可抛出的简短描述

public void printStackTrace() 把异常的错误信息输出在控制台

PrintStackTrace不会停止虚拟机,运行完之后会继续下面的代码

11、抛出处理:

在方法中出现异常,方法就没有进行下去的意义了,采取抛出处理,让该方法结束运行并告知调用者出现了异常

throws:写在方法定义出,告诉调用者使用本方法可能会有哪些异常

public void main()throws Exception1,Exception2…………{
//编译时异常必须要写throws
}

throw:写在方法内,结束方法,手动抛出异常,交给调用者,方法中下面的方法不再执行

public void main(){
	throw new NullPointerException();
}

12、自定义异常:

目的是让异常更加的见名知意
1、定义异常类
2、写继承关系
运行时异常继承RuntimeException
编译时异常继承Exception 核心是提醒编译员检查本地信息
3、空参构造
4、带参构造

(完)
笔者能力有限,希望能给你带来帮助

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值