如何知道对象可以在Java中抛出的所有异常?例如,Scanner。
答案 0 :(得分:1)
这并不简单。如果对象方法在javadoc注释中具有@throws
且准确且最新,则Javadocs有时可以提供帮助。如果您可以访问该类的代码,则可以查看任何throw
语句以查看直接抛出的内容。但是对于大多数类,将抛出的异常将来自类使用的对象,而不是类本身。对于Scanner
的示例,它可能是一个低级IO原语,它将抛出异常,而不是Scanner
本身的方法。
答案 1 :(得分:0)
只会添加其他人的答案。是的,Javadocs将是一个很好的来源,但是没有办法得到这些对象抛出的所有异常的完整列表。请记住,RuntimeExceptions
及其子类也可以在代码流中的任何位置进行,并且不必在throws
子句中声明它们。
如果您在调用方法时要谨慎,可以将调用包裹在try-catch
中并捕获Exception
。如果您希望尽可能彻底,可以尝试捕获Throwable
,但不建议这样做。请参阅:Is it a bad practice to catch Throwable?
答案 2 :(得分:0)
没有。没有确定的表格。 Java运行时环境中包含的类通常是您感兴趣的类的单个Javadoc中的文档(例如Scanner
)。但Java并不是一个封闭的生态系统,许多应用程序包括第三方库(不同质量的文档)。
从更一般的意义上讲,如果它被检查Exception
,编译器(或IDE)会告诉您是否处理它。如果它未经检查Exception
,则可能会或可能不会记录。