A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我怎么感觉没区别,都可以进行抛出啊?

6 个回复

倒序浏览
抛本类和父类的区别,如果有多个该类型就异常直接抛父类的比较好,不用重复抛出
回复 使用道具 举报
继承Exception可以使用Exception中的特有方法
回复 使用道具 举报
有陷阱快跑丶 发表于 2014-12-22 22:32
继承Exception可以使用Exception中的特有方法

Exception没有一个特有方法,都是继承Throwable的方法
回复 使用道具 举报
Throwable是所有错误或异常的超类,其下有Exception和Error两个类,也就是说Throwable是Exception和Error的父类。
而Exception和Error是有区别的:
Exception:是可以通过代码进行处理的异常。
Error:是错误,通常是不可能通过代码进行处理的异常。是错误,并且是会导致程序崩溃的。

所以在抛异常时,应该抛Exception时你抛Throwable肯定是没问题的,关键在于细节,对于异常应该是尽可能去抛详细准确的异常,根据异常可以知道到底是什么位置出了问题。
打个比喻:
我数组角标越界了,你是不是应该抛异常,两种情景:
-----1.我抛数组角标越界异常,那么我会很清楚的知道是数组角标越界了。
------2.我抛数组角标越界异常的父类的父类的父类。。。也就是Throwable,那么我会清楚的知道是Java异常,但是到底是哪儿的异常,就真的说不出来了。

再举个实际的例子:问你是哪儿的人?
1.我是xx省xx市xx县xx村的人。
2.我住地球上。
你认为哪个答案更贴切?

评分

参与人数 1黑马币 +1 收起 理由
as604049322 + 1 淡定

查看全部评分

回复 使用道具 举报
duluhua 发表于 2014-12-23 09:12
Throwable是所有错误或异常的超类,其下有Exception和Error两个类,也就是说Throwable是Exception和Error的 ...

你的意思我懂了。。。但我说的是自定义异常,我把名字命名为FushuException但是让它继承的是Throwable,再抛出去,同样也能够知道,是什么异常。。。在这点上,其实没什么区别。。。
回复 使用道具 举报
duluhua 中级黑马 2014-12-23 15:05:33
7#
学习了,原来还能这样。
不过的话,自定义异常继承Throwable,会含有Error的特性
如果是继承Exception的话,那么该自定义异常就是属于Exception的,不再包含Error的特性。
这么理解也没错吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马