003 Java异常面试题

Java异常面试题
1 Java中异常分为哪两种?
1. 编译时异常
2. 运行时异常
2 异常的处理机制有几种?
异常抛出:throws
异常捕捉:try...catch...finally
3 如何自定义一个异常
继承一个异常类,通常是RumtimeException或者Exception
4 try catch fifinally,try里有return,finally还执行么?
执行,并且finally的执行早于try里面的return
1. 不管有木有出现异常,finally块中代码都会执行
2. 当try和catch中有return时,finally仍然会执行
3. finally是在return后面的表达式运算后执行的
4. finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值
5 Excption与Error包结构
Java可抛出(Throwable)的结构分为三种类型:
被检查的异常(CheckedException),运行时异常(RuntimeException),错误(Error)
1. 运行时异常
定义:RuntimeException及其子类都被称为运行时异常
特点:Java编译器不会检查它。
也就是说,当程序中可能出现这类异常时,倘若既"没有通过throws声明抛出它",也"没有用try-catch语句捕获它",还是会编译通过。
常见的几种运行时异常:
ClassCastException(类转换异常)
IndexOutOfBoundsException(数组越界)
NullPointerException(空指针异常)
ArrayStoreException(数据存储异常,操作数组是类型不一致)
2. 被检查异常 编译时异常
定义:Exception类本身,以及Exception的子类中除了"运行时异常"之外的其它子类都属于被检查异常。
特点 : Java编译器会检查它。
此类异常,要么通过throws进行声明抛出,要么通过try-catch进行捕获处理,否则不能通过编译。
3. 错误
定义 : Error类及其子类
特点 : 和运行时异常一样,编译器也不会对错误进行检查。
当资源不足、约束失败、或是其它程序无法继续运行的条件发生时,就产生错误。程序本身无法修复这些错误的。
6 Thow与thorws区别
位置不同:
1. throws 用在函数上,后面跟的是异常类,可以跟多个;而 throw 用在函数内,后面跟的是异常对象。
功能不同:
2. throws 用来声明异常,让调用者只知道该功能可能出现的问题,可以给出预先的处理方式;
throw 抛出具体的问题对象,执行到 throw,功能就已经结束了,跳转到调用者,并将具体的问题对象抛给调用者。
也就是说 throw 语句独立存在时,下面不要定义其他语句,因为执行不到。
3. throws 表示出现异常的一种可能性,并不一定会发生这些异常
throw 则是抛出了异常,执行 throw 则一定抛出了某种异常对象。
4. 两者都是消极处理异常的方式,只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理
7 Error与Exception区别?
1. Error和Exception都是java错误处理机制的一部分,都继承了Throwable类
2. Exception表示的异常,异常可以通过程序来捕捉,或者优化程序来避免。
3. Error表示的是系统错误,不能通过程序来进行错误处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值