【问题标题】:How to continue from the starting of code when an exception is thrown?抛出异常时如何从代码开始继续?
【发布时间】:2016-03-18 03:53:50
【问题描述】:

我正在运行一个抛出异常的代码,我想在抛出异常时连续运行异常代码,它已经开始并且应该从开始启动程序。 这是我的异常方法和main

【问题讨论】:

  • 请不要发布代码的屏幕截图,而是发布文本
  • 好的! @DennisKriechel

标签: java loops oop functional-programming do-loops


【解决方案1】:

你需要把try/catch放在一个循环中;例如像这样:

public static void main(String[] args) {
    while (true) {
        try {
            // do something
        } catch (Exception ex) {
            // report ex
        }
    }
}

现在,上面将重复// do something 代码块,直到程序被杀死,这可能不是你想要的。如果您想在// do something 成功时终止,那么一种解决方案是在其末尾添加break 语句。其他的可能是设置一个标志并循环直到设置标志,甚至调用System.exit(...)

【讨论】:

  • 也许在“做某事”之后添加一个break语句。
  • 可能。这完全取决于 OP 想要做什么。
  • @StephenC 我想他想重新开始循环所以标签?
  • 我只是想不停地运行,即使程序抛出异常,异常被捕获在 catch 块中并且方法应该再次运行并且该运行方法将再次抛出异常我不应该停止抛出异常。
  • @MichaelQueue - 我认为如果块中的代码成功,他想做什么还不清楚。我的回答是为了让他朝着正确的方向思考……而不是提供一个固定的解决方案。我假设他对 Java 的理解足以理解终止循环的各种方法......如果这是他想做的。
【解决方案2】:

我想我得到了你想要的。

您可以在 try 语句中显式抛出一个通用异常,从而避免通过“错误代码”生成一个异常。您还可以将要显示的“消息”传递给此异常,并在 catch 语句中将其与完成一起打印出来。由于异常是在 exc() 方法中处理的,因此您不需要在 main 方法中使用 try/catch 语句。它可能只是一条线。

exc();

public static void exc() {
    for(;;){
        try{
            throw new Exception("Exception");
        } catch (Exception e) {
            System.out.println(e.getMessage());
            System.out.println("Done");
        }
    }
}

【讨论】:

    【解决方案3】:

    试试这个..

    public static void main(String[] args) {
        Test_exception_main u = new Test_exception_main();
        while(true){
            try{
                u.exc();
            }catch(Exception e){}
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-03-22
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      相关资源
      最近更新 更多