Bja*_*sen 8 java exception-handling anti-patterns exception
我目前正在审查同事的Java代码,我看到很多情况下,每个可能抛出异常的语句都被封装在自己的try/catch中.catch块都执行相同的操作(哪个操作与我的问题无关).
对我而言,这似乎是一种代码味道,我记得在阅读它是一种常见的反模式.但是我找不到任何关于此的参考.
因此,每个抛出的异常语句都会尝试使用try/catch,异常会被认为是反模式,支持这种情况的论据是什么?
构造示例:(与原始问题无关,所以请不要介意此示例中的其他问题,因为它只是为了说明我的意思而构建的.)
public int foo()
{
int x, y = 7;
try
{
x = bar(y);
}
catch(SomeException e)
{
return 0;
}
try
{
y = baz(x,y);
}
catch(SomeOtherException e)
{
return 0;
}
/* etc. */
return y;
}
Run Code Online (Sandbox Code Playgroud)
(假设在这里捕获两个异常是合适的,即我们知道它们是做什么的,并且适当的是在两种情况下都返回0.)
我无法使用权威来源为您服务,但这些是异常处理的基本原则:
有很多关于SO的早期帖子处理这个问题,例如JAVA或C#中的异常管理的最佳实践.