我并不是指单个程序中的每个错误,我的意思是Java 8中可能存在的每个错误。您是否可以在Java Docs中的某个位置找到它?
答案 0 :(得分:1)
在我看来,更多的是一个研究问题,而不是一个可靠的实施问题,但在任何基础上你都有两条探究线:
1)编译后可能发生的任何错误都只会作为Throwable类型的实例发生,如果你想跟踪所有这些错误需要包含运行时库的每一部分(以及任何其他部分)项目中包含的可能的用户定义库)在您打算用于将它们报告给您或正在运行的项目程序的类中。然后,您将使用Reflection填充迭代所有当前定义的类,当您返回带有返回true的列表作为instanceof Throwable时 - 假设您需要所有可能的类名。这些例外的潜在原因只能通过与任何给定的Throwable类相关的文档来暗示。
2)另一方面,如果您还想要所有编译时错误,那么您需要查看Java编译器的源代码。
但是说实话,异常被称为异常的原因是因为它根据您应该能够在开发过程中抢占的特殊情况报告错误。任何足以阻止程序工作的错误都会引发异常并捕获任何东西Throwable而不会识别特定类型并不应该考虑实现 - 除非使用最后机会saloon心态(如果我的软件在所有条件下都没有解决这个问题)我可以预见到它可以重置为零而不会完全掉下来。)
答案 1 :(得分:0)
您可以通过查看java.lang
包的package tree view并导航到Throwable(您可以通过选择 Tree 来访问此视图)来全面了解这些内容导航栏)
Throwable是Java中所有错误和异常的根源。值得注意的例外是
java.lang.Error
:异常/致命错误的根源java.lang.Exception
:已检查例外的根[*] java.lang.RuntimeException
:未经检查的例外情况的根[*]如果扩展Exception而不是RuntimeException