检查异常和编译时异常之间的区别?

时间:2015-11-19 10:05:59

标签: java exception

我听说编译时异常和检查异常之间存在差异。但是,逻辑上找不到任何。请帮助

2 个答案:

答案 0 :(得分:1)

在编译时检查已检查的异常。这意味着如果一个方法抛出一个已检查的异常,那么它应该使用try-catch块处理异常,或者它应该使用throws关键字声明异常,否则程序将给出一个编译错误。它被命名为检查异常,因为在编译时检查这些异常。

编译时异常和已检查异常之间没有区别

答案 1 :(得分:1)

一个常见的误解是所有错误都是例外。当新用户看到错误或堆栈跟踪时,它必须是一个例外。然而,这种情况并非如此。你可以得到

  • 编译时间错误,例如语法错误,在任何意义上都不是例外。
  • 在编译器中发生的异常。这不是由于代码中的错误而是编译器中的错误。
  • 用于调试目的的堆栈跟踪,这不是错误。它只是程序发生时程序所在位置的堆栈跟踪。

最有可能的是,该人对编译器报告的错误以及运行程序时发生的实际错误感到困惑。

P.S。这不太可能,但这个人可能一直在想" Checked Exception"通常是指Exception或不是RuntimeException或子类的子类。

这不是在编译时检查的所有Throwable。实际上所有Throwable都被检查异常RuntimeException和Error及其子类。这意味着你可以子类Throwable(几乎从不使用)或创建Throwable本身,它几乎从不抛出,只用于记录。