来自
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); } }
这些处理例外的方法有什么不同或最佳做法吗?
解决方法
这些都是两种不同场景的有效方法.
在第一种情况下,该方法无法对异常做任何智能,但必须向上“报告”它.这样,调用者可以捕获异常并决定如何处理它(例如取消流,向用户弹出消息,记录它等)
在第二种情况下,您捕获异常并将其记录下来,从而有效地将错误从调用方隐藏起来.如果调用者并不真正关心操作是否成功,则此类处理可能很有用.