Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示引发异常的所有函数_Java_Eclipse_Exception_Try Catch - Fatal编程技术网

Java 显示引发异常的所有函数

Java 显示引发异常的所有函数,java,eclipse,exception,try-catch,Java,Eclipse,Exception,Try Catch,我正在开发一个Java程序,我想知道Eclipse中是否有某种工具可以指出引发异常的所有方法。我只是想确定我把它们都弄到手了 谢谢你的帮助 Dan首先,搜索关键词。“throw”关键字将出现在检测到错误条件或无法处理某些异常的代码中,而“throws”将是声明传递某些异常的方法 Eclipse可能无法找到所有抛出异常的方法,因为运行时异常不需要在“throws”子句中声明,并且可能由库调用抛出,在这种情况下,您也找不到“throw”。如果您忘记捕获选中的异常(extensesexception)

我正在开发一个Java程序,我想知道Eclipse中是否有某种工具可以指出引发异常的所有方法。我只是想确定我把它们都弄到手了

谢谢你的帮助


Dan

首先,搜索关键词。“throw”关键字将出现在检测到错误条件或无法处理某些异常的代码中,而“throws”将是声明传递某些异常的方法


Eclipse可能无法找到所有抛出异常的方法,因为运行时异常不需要在“throws”子句中声明,并且可能由库调用抛出,在这种情况下,您也找不到“throw”。

如果您忘记捕获选中的异常(extenses
exception
),代码将无法编译。如果您忘记捕获未经检查的异常(extensed
RuntimeException
),这通常是更好的方法

如果您的程序在主方法(初始执行上下文)中捕获到异常,则会通知您是否抛出了某些异常,但未处理

public static void main(String[] args) {
    try {
       // .... anything you want to do
    } catch(Exception e) {
       e.printStackTrace(); // useful to visualize the stack trace and ping point others places to catch exceptions
    } catch(Throwable t) {
       // if you want to check for errors also, but generally there isn't much to do in this case
    }
}

由于Java实现了checked(Exception)和unchecked RuntimeException(unchecked RuntimeException)异常的概念,因此必须处理checked异常,这会通知异常,正确的程序应该尝试/catch/finally。但是unchecked通常会通知指示bug的情况,良好的实践和防御编程应该避免,因此您不必处理它。

必须捕获选中的异常,以便Eclipse将告诉您这些异常。另一方面,未检查的异常(aka)是“不应该发生的”,大多数情况下是编程问题。因此Java不需要捕捉它们,而AFAIK Eclipse不会显示任何提示来告诉您潜在的问题(这可能更利于可见性)

您可以阅读一篇文章,其中Oracle给出了其关于未检查异常的想法


如果您想自己构建一些东西,请查看的
Direct Known Subclass
,它将帮助您识别可以抛出而不会被捕获的异常。

查找编译器错误。每当你错过这些东西时,编译器就会帮助你。通常的“查找用法”工具可能会帮助你。也就是说,这就是Java中检查异常的用途。你能给我举个例子吗?假设:String s=“1”int i=Integer.parseInt(s);我怎么会发现它会抛出?我只是想确保我使用的所有方法在抛出异常时都能捕获异常,我不知道抛出的所有方法。谢谢你的帮助!我知道这不应该发生,我只是想确保在发生的情况下,我能处理好它们。看来我需要确保检查我使用的每一种方法!谢谢@丹宁382不客气。现在的问题是:是花时间处理每个异常更好,还是花时间确保您的方法不会抛出这些异常更好完全同意你的意见。最好花点时间确保我没有抛出异常。我想我只是把它看作是“如果我因为任何原因不得不这样做,你会怎么做?”因为我只是在学习。再次感谢!