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

时间:2018-07-02 13:28:51

标签: java ioexception

我想知道是否有一种好的且标准的方法来只允许一定数量的IO异常(连接超时等),然后再停止尝试,并可能会发送自动电子邮件通知某人有问题。我可以想到使用try catch块执行此操作的丑陋方法,该块保留一个计数器并在尝试之前检查该计数器的值。有没有更标准的更好的实现方法?

1 个答案:

答案 0 :(得分:0)

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

this.test = "attached to the module";
var foo = { test: "attached to an object" };
foo.method = function(name, cb){ 
    // bind the value of "this" on the method 
    // to try and force it to be what you want 
    this[name] = cb.bind(this); };
foo.method("bar", () => { console.log(this.test); });
foo.bar(); 

它将捕获异常,打印堆栈跟踪记录,并且仅在计数器超过10时才重新抛出异常。由于以下几个原因,电子邮件发送部分将更加困难:

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