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

一直想不透这个异常抛出有什么意义,编译期的异常就直接报错了 ,可以自己改过来,运行期的异常都是等运行后发现的,再去try catch finally 啥的,我们面对异常该怎么做?还有就是 方法体中throw了异常,为什么还要在方法后面用throws 声明呢?求解

13 个回复

倒序浏览
编译错误是直接在开发工具里就抱错了,但是有的错误是在运行时才会出现的,编译的时候并不会报错,比如说对数据库某一条数据的删除,可能这条数据并不存在。程序运行的时候,到这行代码就会中断报错。而有了try,catch,程序会把这条异常抛出,运行继续后面的代码
回复 使用道具 举报
楼上说的很好了
回复 使用道具 举报
同问啊,虽然还没有学到
回复 使用道具 举报
一样觉得
回复 使用道具 举报
编译时异常是你犯的错误,是必须改正的,是必须避免的,运行时异常不是你编写代码的错误,是由于外界原因造成,比如10除以0,但是0不能作除数,但是这并不是我代码写错,而是关系到数学的逻辑,而出现异常代码就会终止,为了不让代码终止,我们可以用trycatch,thorws,解决。thorws是用在类上的,throws是用在方法上的。一般用其中一个就行
回复 使用道具 举报
yang028 发表于 2016-10-1 09:40
编译错误是直接在开发工具里就抱错了,但是有的错误是在运行时才会出现的,编译的时候并不会报错,比如说对 ...

那throw和throws一般怎么用呢?
回复 使用道具 举报
penghe 发表于 2016-10-1 17:50
编译时异常是你犯的错误,是必须改正的,是必须避免的,运行时异常不是你编写代码的错误,是由于外界原因造 ...

最后一句没看明白 - -。。。。
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
throw 和throws 是不一样的throws只是声明,不处理的,在方法的声明上,后面可以接多个异常的类名,但是用逗号隔开,并且小异常放前面,而throw在方法里,只能抛出一种异常,你可以通过try{} catch{}处理,也可以在方法上声明
回复 使用道具 举报
Daveweil 发表于 2016-10-3 13:31
throw 和throws 是不一样的throws只是声明,不处理的,在方法的声明上,后面可以接多个异常的类名,但是用 ...

有点领会到了~谢谢
回复 使用道具 举报
penghe 发表于 2016-10-1 17:50
编译时异常是你犯的错误,是必须改正的,是必须避免的,运行时异常不是你编写代码的错误,是由于外界原因造 ...

我也有同样的问题,看了回复,还是有点不明的,就像你举的例子,10除以0,可是当我本身意识到这个问题的时候,我可以直接做出处理啊,为什么还要抛出呢?而且在教程中,很多都是抛出异常后就不管了,可能我没看明白,但是很多都是交给了谁谁谁处理,但是实际上这个问题在我看来并没有得到解决。还是10除以0的问题,当用户这样做了,我认为你给人家一个汉语提示:xxx不可以之类的也算是解决了问题,对吧。可是教程中是把问题给了别人,得到的仍然是英文回答,在我看来这就不算解决问题了吧,这样用户看到,他明白什么意思么?总之给我的感觉就是,这个异常我们不管了,直接跳过,既没告诉用户,也没解决问题。不知道我表述的意思能明白么?
回复 使用道具 举报
throws 告诉别人这个方法有异常
回复 使用道具 举报
6666666666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马