【问题标题】:Java catching Exception FileNotFound not working [closed]Java捕获异常FileNotFound不起作用[关闭]
【发布时间】:2012-12-18 08:30:17
【问题描述】:

我正在尝试捕获 FileNotFound 异常,以便我的程序在抛出异常时打印一条消息,而不是打印异常。这是我的代码:

import java.io.IOException;
import java.util.Scanner;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class SeegeeSOGFinder10
{
    public static void main(String args[]) throws InterruptedException, IOException
    {
        // Some code here

        int i = 0;

        if(choice.equalsIgnoreCase("blah"))
        {
            try
            {
                while(i < j)
                {
                    // Loop code
                    i++;
                }
            }
            catch(java.net.SocketTimeoutException e) // This is where I am having trouble, These 2 exceptions are still thrown and are printed and my message is not shown
            {
                System.out.println("Recieved HTTP timeout. Maybe we got rate limited? Slepping for 30 seconds.");
                Thread.sleep(30000);
            }
            catch(java.io.FileNotFoundException e)
            {
                System.out.println("File Not Found!");
            }

            System.out.println("Done!");
        }
        else
        {
            System.out.println("Invalid Choice");
        }
    }

    // Some more code
}

代码在我遇到问题的地方被注释,这两个错误仍然被抛出,并且我的消息没有被打印出来。我尝试将 try catch 块包含在循环内,甚至将整个程序放在 try catch 块中,结果相同。

【问题讨论】:

  • 如果您希望在这里获得免费帮助,您至少应该格式化您的代码!
  • 您显示的代码不包含任何有关使用文件的语句。
  • 这段代码in中没有涉及文件。
  • 显示抛出异常的结果。 (确实被打印出来的东西)
  • @CJSculti,如果您想获得帮助,您必须向我们展示您处理文件的那些代码行。

标签: java exception try-catch


【解决方案1】:

catch 只会捕获在其 try 块内抛出的异常。整个方法抛出异常但没有被捕获的最可能原因是它是从其他地方抛出的,可能是该方法在 try-catch 块之外调用的东西。

我建议将块放在方法中的所有代码周围。这样,您应该捕获异常并能够显示堆栈跟踪,包括导致异常的行号。

【讨论】:

  • 另一种可能性是异常是从 try 块中调用的方法内部抛出的,但该方法捕获异常并打印其堆栈跟踪。当编译器告诉他们必须捕获或声明异常时,几乎每个新手都会这样做。
  • @JBNizet 确实如此。真正的恶习是在无效状态下继续,既没有异常也没有退出。同样,实际查看堆栈跟踪会有所帮助。
  • 就是这样。循环正在调用另一个方法,正是在该方法中引发了异常。谢谢大家!
猜你喜欢
  • 2014-04-07
  • 1970-01-01
  • 2010-10-28
  • 1970-01-01
  • 2012-12-22
  • 1970-01-01
  • 2011-07-27
  • 2014-07-15
  • 1970-01-01
相关资源
最近更新 更多