<分区>
以下是良好做法吗?如果不是,应该怎么做?
catch(Exception e)
{
throw new Exception(e.Message, e);
}
<分区>
以下是良好做法吗?如果不是,应该怎么做?
catch(Exception e)
{
throw new Exception(e.Message, e);
}
最佳答案
不,如果您使用相同的消息抛出另一个完全相同类型的异常,这不是好的做法。这样做会使堆栈跟踪复杂化并使调试变得更加痛苦。
如果您要抛出一个新的异常,它应该在某些重要方面与原来的不同。例如,它应该是另一种类型,或者以其他方式(如更具体的错误消息)阐明异常的原因。如果您不能执行其中任何一项操作,则只需使用 throw;
重新抛出当前异常即可。
或者,更好的是,根本不要捕获它。重新抛出实际上也稍微弄乱了堆栈跟踪(当前帧的错误位置设置为重新抛出点,而不是异常发生的地方),所以如果你没有任何个人必须做的事情来处理异常,然后放手——让它传播并让调用者处理它。
关于c# - 抛出新异常的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12847637/