异常的补充

来源:互联网 发布:蜂窝移动网络收费吗 编辑:程序博客网 时间:2024/06/08 15:58

自定义异常

在throwable体系中,有很多对于异常的描述,即出现的很多问题我们都能用其中的方法区解决,但是总会有一些里面没有涉及到的错误的解决方法,那么,这时候就需要我们自己去定义一些异常的处理方法,这个就是自定义的异常。
所以,自定义异常就是:当项目中出现为被java描述并封装的特有问题时,我们讲这些特有的问题,进行自定义的异常封装。
其次,自定义异常的步骤是什么呢?
首先,我们肯定要先像定义一般的类的时候,定义一个我们自己的异常类。那么,是不是定义一个类似的异常类就可以了呢?显然不是的,如果单独定义一个类,那怎么表明它是和异常相关的呢?所以,定义好类名后,就要去继承exception这个类,加入到异常这个大家庭中。然后,我们都知道,异常可以手动抛出,也可以自动抛出。但是我们自定义的异常,jvm是不了解的,所以必须在函数内部手动抛出,此处要新介绍一个关键字,throw。它和throws的区别等下再讲。
最后,要怎么定义异常类中的信息呢?因为父类的体系中,已经把所有的动作都做完了,所以子类只要在构造时,将异常信息传递给父类通过super语句,那么就可以直接通过getMessage方法获取自定义的异常信息。
以上,自定义异常的基本步骤就完成了

需要补充的就是throw和throws的区别:
throws:使用在函数上。后面跟异常类,可以跟多个,用逗号隔开
throw:使用在函数内。后面跟异常对象
此外,还补充一个就是继承exception的原因:
异常体系有一个特点:因为异常类和异常对象都需要被抛出。
他们都具备可抛性,这个可抛性是Throwablw这个体系中独有的特点
只有这个体系中的类和对象才可以被throw和throws操作

RunTimeException

                在异常体系中,有一个很特殊的异常子类,那就是RunTimeException,它有两个特点:如果在函数内抛出该异常,函数上可以不用声明,编译一样通过;如果在函数上声明了该异常,调用者可以不用进行处理,编译一样通过。
此外,不只是这个类,这个类的所有子类都有这个特点,如ArithmeticException。原因是:当出现这个类里面的问题是,jvm希望的是程序能够停掉,由程序员对代码进行修正来继续代码的执行动作。
0 0
原创粉丝点击