首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java if与try/catch开销

Java if与try/catch开销
EN

Stack Overflow用户
提问于 2011-12-24 08:13:27
回答 4查看 39.4K关注 0票数 56

在Java语言中,使用try/catch块,而不是使用if块(假设附带的代码没有这样的要求),会有任何开销吗?

例如,以以下两个简单的字符串"safe trim“方法实现为例:

代码语言:javascript
复制
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()方法来简化代码布局是一种很好的编程模式吗?尤其是当可以通过将代码封装在一个/catch块中来避免许多if块检查罕见错误的情况时。

例如,常见的情况是使用N parameters的方法,该方法在开始时使用M <= N,如果任何这样的参数“无效”(例如,null或空字符串),则会迅速且确定地失败,而不会影响代码的其余部分。

在这种情况下,不必编写k * M if块(其中k是每个参数的平均检查次数,例如空字符串或空字符串的k = 2 ),try/catch块将显著缩短代码,并且可以使用1-2行注释来显式地记录“非传统”逻辑。

这样的模式还将加速该方法,特别是当错误条件很少出现时,并且它将在不损害程序安全性的情况下这样做(假设错误条件是“正常的”,例如在字符串处理方法中,其中null或空值是可接受的,尽管很少出现)。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8621762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档