JAVA异常,这下真的有点异常!

如果我们调用了一个方法,而这个方法throws了一个异常,那么我们应该做什么呢?http://img.mukewang.com/55d04829000120eb06500441.jpg

毫无疑问,eclipse给了我们最佳的的答案,它会提示你:继续抛出(throws)或者现场解决(try...catch)。

http://img.mukewang.com/55d049c80001a17b07020336.jpg

这道理很简单,因为eclipse就是教导我们的。但是假如发生了例外:http://img.mukewang.com/55d04b2900011ec406870216.jpg

如上图,save方法(具体功能不作介绍,与问题无关)明明抛出了一个异常。但是我们调用的时候,竟然没有提示我们对异常进行处理。

为了确定这个方法确实会抛出异常,我反编译得到源码:

http://img.mukewang.com/55d04c670001e72d07460138.jpg

的确抛出异常,但是为什么,eclipse没有提示处理异常,我很奇怪,各位大神如果懂,请指点一下。


思君满月
浏览 1995回答 4
4回答

donlv

java提供了两种异常机制。一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption)。检查式异常:我们经常遇到的IO异常及sql异常就属于检查式异常。对于这种异常,java编译器要求我们必须对出现的这些异常进行catch 所以 面对这种异常不管我们是否愿意,只能自己去写一堆catch来捕捉这些异常。运行时异常:我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。

管理員

有一种异常类型叫 RunTimeException比如 int a = 1/0;

思君满月

谢谢,我做过实验,不过每次都是抛出的Exception 所以要求处理,搞的这么麻烦。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java