【发布时间】:2011-04-10 16:33:31
【问题描述】:
尝试一些无用的东西只是为了看看这段代码是否抛出了一个特定的异常,这是一个好方法吗?
我想在抛出异常时做点什么,否则什么都不做。
try {
new BigDecimal("some string"); // This do nothing because the instance is ignored
} catch (NumberFormatException e) {
return false; // OK, the string wasn't a well-formed decimal
}
return true;
要测试的前置条件太多了,构造函数BigDecimal()总是检查它们,所以这似乎是最简单的方法。
【问题讨论】:
-
你问这个很好。这意味着您认识到要避免这种模式,但您看不到其他选择。 +1
-
这不是问题的答案,但你的例子是一个极好的内存泄漏......可能会有异常被用作函数的返回的情况,但不是你应该忘记返回的地方新的。
-
@Martin:是的,你是对的。我不专心,以为是 C++ 而不是 Java 有垃圾收集。