Java异常包装:糟糕的做法?

来自 PHP世界,只有一种方法可以编写异常处理..我发现Java中的异常包装有点“丑陋”:
public void exampleOneException(String input) throws MyBusinessException {
    try {
        // do something
    } catch (NumberFormatException e) {
        throw new MyBusinessException("Error...",e);
    }
}

我更喜欢使用这种风格:

public void exampleTwoexception() {
    try {
        // do something
    } catch (MyBusinessException e) {
        log.error("Error...: " + e);
    } catch (NumberFormatException e) {
        log.error("Error...: " + e);
    }
}

这些处理例外的方法有什么不同或最佳做法吗?

解决方法

这些都是两种不同场景的有效方法.

在第一种情况下,该方法无法对异常做任何智能,但必须向上“报告”它.这样,调用者可以捕获异常并决定如何处理它(例如取消流,向用户弹出消息,记录它等)

在第二种情况下,您捕获异常并将其记录下来,从而有效地将错误调用方隐藏起来.如果调用者并不真正关心操作是否成功,则此类处理可能很有用.

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...