自定义异常类、运行时异常与编译时异常

一、自定义异常类:
sun提供了很多的异常类给我们用于描述程序中各种的不正常情况,但是sun给我们提供异常类还不足以描述我们现实生活中所有不正常情况,那么这时候我们就需要自定义异常类。

1、需求: 模拟feiQ上线的时候,如果没有插上网线,那么就抛出一个没有插上网线的异常,如果已经插上了网上,那么就正常显示好友列表。

2、自定义异常类的步骤: 自定义一个类继承Exception即可。

二、运行时异常与编译时异常:
1、异常体系:
——–| Throwable 所有错误或者异常的父类
————–| Error(错误)
————–| Exception(异常) 异常一般都通过代码处理
——————| 运行时异常: 如果一个方法内部抛出了一个运行时异常,那么方法上可以声明也可以不声明,调用者可以处理也可以不处理。
——————| 编译时异常(非运行时异常、受检异常): 如果一个方法内部抛出了一个编译时异常对象,那么方法上就必须要声明,而且调用者也必须要处理。

2、运行时异常: RuntimeException以及RuntimeException子类 都是属于运行时异常。
处理异常方法一:

处理异常方法二:

处理异常方法三:

3、编译时异常: 除了运行时异常就是编译异常。

4、如何记住异常到底是运行时异常还是编译时异常呢?
答:不用记,会查API文档即可。

5、疑问: 为什么java编译器会如此严格要求编译时异常,对运行时异常如此宽松?
答:运行时异常都是可以通过程序员良好的编程习惯去避免,所以java编译器就没有严格要求处理运行时异常。

6、补充一种情况:当使用一些方法的时候,需要抛出异常或者捕获异常。

Object类中的wait方法

正确形式:

class Demo1{
    public static void main(String[] args)
    throws InterruptedException{  //抛出异常
         Object o = new Object();
         o.wait();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值