gpt4 book ai didi

exception-handling - 我们是否应该总是捕获异常,将其包装起来并传递出去?

转载 作者:行者123 更新时间:2023-12-04 14:34:44 25 4
gpt4 key购买 nike

我读过这样的方法:

public void doSomething throws MyException{
...
try {
doSomthingElse();
} catch (MyException e){
log.errer(e.getMessage());
throw new MyException(e.getMessage(),e);
}
...
}

但我更喜欢:
public void doSomething throws MyException{
...
doSomthingElse();
...
}

任何人都知道第一种方法的任何原因?只有一种类型的Exception,在这个方法中没有处理,有什么理由去捕获它,没有新的信息包装起来,然后传上去?为什么不直接用第二种方式写呢?谢谢!

最佳答案

记录异常并进一步抛出它实际上是几个 reasons 的反模式.经验法则是:如果您不能做任何有用的事情来处理异常(在大多数情况下日志记录不处理异常),让您的框架/容器为您做。如果可以(例如在数据库不可用时使用不同的存储,在网络关闭时排队包),记录异常并继续(始终记得记录堆栈)。

如果您有已检查的异常,请将其包装在运行时一并重新抛出(创建您的自定义异常或查找符合您需要的现有异常)。

关于exception-handling - 我们是否应该总是捕获异常,将其包装起来并传递出去?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4932094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com