Java 如何只允许一定数量的io异常?

Java 如何只允许一定数量的io异常?,java,ioexception,Java,Ioexception,我想知道是否有一个好的标准方法,在你停止尝试之前,只允许一定数量的IO异常(连接超时等),或者发送一封自动电子邮件,让别人知道有问题。我可以想出一个丑陋的方法,用一个try-catch块保存一个计数器,并在尝试之前检查该计数器的值。有没有更标准更好的方法来实现这一点?只需创建一个充当计数器的ìnt`变量: int counter = 0; while (true){ try{ // do something break; } catch (IOEx

我想知道是否有一个好的标准方法,在你停止尝试之前,只允许一定数量的IO异常(连接超时等),或者发送一封自动电子邮件,让别人知道有问题。我可以想出一个丑陋的方法,用一个try-catch块保存一个计数器,并在尝试之前检查该计数器的值。有没有更标准更好的方法来实现这一点?

只需创建一个充当计数器的ìnt`变量:

int counter = 0;
while (true){
    try{
        // do something
        break;
    } catch (IOException e) {
        e.printStackTrace();
        counter++;

        if (counter >= 10)
            throw new RuntimeException(e);
    }
}
它将捕获异常,打印stacktrace,并且仅当计数器超过10时才重新显示异常。由于以下几个原因,电子邮件发送部分将更加困难:

  • 你需要一个图书馆来发送电子邮件(AFAIK)
  • 您需要配置电子邮件服务器
  • 您需要针对服务器进行身份验证(用户需要提供密码,或者您需要硬编码密码-->错误做法)
  • IOException的一个可能原因可能是计算机未连接到internet。在这种情况下,发送电子邮件也会失败

请在您的问题中添加语言标签。好的,谢谢,抱歉!看看Ok是的,我想过做这样的事情,我只是觉得可能会有一种不同的,更专业的方式(因为这是我在第一个java类中写的东西)。我想基本的东西确实有用。谢谢如果它对你有用,考虑把它标记为解决方案。Thx:-)如果您想在许多地方使用此代码块,我建议您将计数器逻辑封装到某个公共类中的单独静态方法中。我不喜欢静态的东西,因为它们不需要是静态的,但是,如果您将代码包装在一个方法中,并提供一个包含实际逻辑的
Runnable
,则可以使代码更加抽象