【问题标题】:Is there a way to go to catch in a try-catch? [duplicate]有没有办法在 try-catch 中捕捉? [复制]
【发布时间】:2019-11-28 15:22:33
【问题描述】:

我有以下代码:

try {
  double a = Double.parseDouble(args[0]);
  if(a <= 1) {
    ...
    System.exit(-1);
  }
} catch(Exception e) {
  ...
  System.exit(-1);
}

使用我的解决方案,我必须编写两次相同的代码。有没有办法进入 catch 块(比如故意出错),或者有没有其他方法可以简化这段代码?

【问题讨论】:

  • 你可以手动抛出你想要捕获的异常,即throw new Exception("Number too small");
  • 不建议抛出Exception 或捕获Exception。尝试在您的 catch 子句和 throw 子句中更加精确。尝试从 throwable 开始理解类层次结构。

标签: java exception try-catch


【解决方案1】:

可能会以编程方式抛出错误

try {
  double a = Double.parseDouble(args[0]);
  if(a <= 1) {
    throw new Exception("some error happened");
  }
} catch(Exception e) {
  ...
  System.exit(-1);
}

【讨论】:

  • 我不会将异常抛出用于正常的执行流程。名副其实:例外应该是例外
  • @D.Lawrence 我不同意,异常是出现错误并且您想停止当前处理以处理该异常。如果是 OP 的代码,他们使用的是System.exit(),所以他们想立即停止当前的执行。
猜你喜欢
  • 1970-01-01
  • 2013-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
  • 2016-01-26
  • 1970-01-01
相关资源
最近更新 更多