哪个更好的方法?

时间:2019-05-27 06:17:44

标签: java

我需要找到主题,但它可以为空。因此必须做到这一点而不会引发异常。我有两种方法,请提出哪种更好的方法?

public static String getSafeSubject(SNSEvent.SNSRecord record){
        try{
            return record.getSNS().getSubject();
        }catch (Exception e){
            return "Failed to retrieve subject";
        }
}
public static String getSafeSubject(SNSEvent.SNSRecord record){
  if(record == null || record.getSNS() == null || 
  record.getSNS().getSubject() == null){
            return "Failed to retrieve subject";
        }
        return record.getSNS().getSubject();
    }

1 个答案:

答案 0 :(得分:1)

这个问题很难回答,有很多事情要考虑。取决于开发人员想要使用的样式,这可能值得争论。两种方法都有优点和缺点。我将在下面列出一些内容:


使用try-catch:

专业版:

  • 通常更容易阅读
  • 发展更快

骗局

  • 隐藏错误
  • 执行速度可能较慢(开销更大)-这取决于警卫条件

使用警戒条件:

专业版:

  • 明确的,意味着开发者决定什么是有效的,什么不是有效的
  • 如果还有其他问题,方法可能会抛出

骗局

  • 写得慢
  • 可能会忘记包括有效的警卫条件