基础面试题5(异常处理)

java的健壮性体现在什么地方

Java的健壮性体现在异常处理

你是如何处理异常的

通常使用Try–catch的方式处理异常,有时也会交给外层处理异常

如何定义一个异常

一种是继承RuntimeExceprion,一种是继承Exception,两种方式有本质的区别

异常的分类

error

指的是java运行时系统内部错误和资源耗尽错误,应用程序不会抛出该类对象

exception

受控异常,Exception的直接子类,一般是外部错误,通常发生在编译阶段java编译时会强制要求捕获的异常类型
非受控异常: RuntimeException 的直接子类,那些虚拟机正常运行期间的报出的异常类

异常处理

工作中是如何处理异常的,有什么注意事项

异常处理方式有两种 分别是抛出异常和捕获异常
抛出异常有三种方式 分别是 throw throws 和系统自动抛出的异常
捕获异常 即try–catch–finally的方式处理异常
只有在finally中对应的try代码块中得到执行的的情况下才会执行finally中的语句

throw和throws有什么区别

throw用在方法内,后面跟着异常对象,用来哦熬出具体的异常对象,执行到throw这个方法就结束了 一定会抛出异常
在这里插入图片描述
直接报不可达语句错误
throws 用在方法上后面跟异常类 可以有多个,用来声明异常,让调用者知道该功能可能出现的问题,可以预先处理异常,异常的一种可能出现,但是不一定会发生的异常
在这里插入图片描述
当捕获时会直接捕获这个异常类
在这里插入图片描述

什么情况下finally不会执行

  1. 不在finally对应的try代码块中不会执行
  2. 主动调用System.exit(0) 直接退出jvm虚拟机也不会执行
  3. 如果方法finally中的代码有return 一定返回的是finally中的return的结果

final finally finallize的区别

final表示不可变的
修饰在变量上表示一旦赋值不可修改
修饰在方法上表示方法不可被继承,但是可以被重载
修饰在类上表示类不可变
finally是异常处理,不管是否发生异常都一定会执行的
finalize表示垃圾回收的方法用于释放非java资源,不能保证jvm一定会调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值