Java if vs.try / catch开销

有没有在Java中的任何开销使用 块,而不是一个 (假设封闭的代码,否则不要求的话)?

例如,对字符串采用“安全调整”方法的以下两个简单实现:

public String tryTrim(String raw) {

try {

return raw.trim();

} catch (Exception e) {

}

return null;

}

public String ifTrim(String raw) {

if (raw == null) {

return null;

}

return raw.trim();

}

如果raw输入很少null, 这两种方法之间的 ?

此外,使用这种方法来简化代码的布局 tryTrim(),特别是当许多 可以通过将代码封装在一个try /

catch块中来避免检查罕见错误情况的块时?

例如,N parameters使用M <=

N的方法很常见,该方法在开始时就使用,如果任何这样的参数为“无效”(例如,空字符串或空字符串),都会快速确定性地失败,而不会影响其余的码。

在这种情况下, (k每个参数的平均检查次数在哪里,例如,k =

2对于空字符串或空字符串),而是可以大大缩短代码,而可以使用1-2行注释明确指出“非常规”逻辑。 *

这样的模式还可以加快方法的速度,尤其是在错误情况很少发生的情况下,并且这样做不会损害程序安全性(假设错误情况是“正常的”,例如,在字符串处理方法中值为空或空值的情况下)是可以接受的,尽管很少在场)。

回答:

我知道您在询问性能开销,但您实际上不应该使用try/ catchif可互换使用。

try/ catch是针对超出您的控制范围而不是正常程序流中的错误事件。例如,尝试写入文件并且文件系统已满?这种情况通常应使用try/

处理catch

if语句应该是正常流程和普通错误检查。因此,例如,用户无法填充必填字段?使用if该,不try/ catch

在我看来,您的示例代码强烈建议正确的方法是使用if语句而不是try/ catch

要回答您的问题,我想想try/中的开销通常catch比/中的开销大if。要肯定知道,请获取Java

Profiler并查找所需的特定代码。答案可能会根据情况而有所不同。

以上是 Java if vs.try / catch开销 的全部内容, 来源链接: utcz.com/qa/398824.html

回到顶部