两个例外之间的差异

时间:2011-12-21 20:55:18

标签: java

我有一项任务是预测程序的输出而不打印它。

在这个程序中,人没有覆盖toString()方法和输出变体

 Exception in thread "main" 
 java.lang.MethodNotFoundException 

,第二个是

 cannot resolve symbol 
 symbol: method toString () 

这两个有什么区别?

3 个答案:

答案 0 :(得分:0)

前者是运行时异常,第二种是编译错误,不允许代码首先运行。如果运行toString方法而不覆盖它,则不会出现这些问题,除非您定义一个显式类层次结构,其中有一个类抛出前一个异常,然后让其中一个子类无法覆盖它。

答案 1 :(得分:0)

首先出现在运行时,动态地测试方法存在并且它不存在。

第二个是编译时,因为一个方法不存在。

答案 2 :(得分:0)

第二个例外是Checked Exception,可以在您的应用程序中捕获和处理,如果您没有捕获第二类异常,编译器将在编译期间抛出错误。

而第一个例外是未经检查的例外。编译期间编译器无法检测到它,您无法捕获它。更好地称之为恶魔例外:)