It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center
                            
                        
                    
                
                                7年前关闭。
            
                    
是否遵循以下良好做法,如果没有,应该怎么做?

catch(Exception e)
{
     throw new Exception(e.Message, e);
}

最佳答案

不,如果您在同一消息中引发了另一个完全相同类型的异常,那么这不是一个好习惯。这样,您会使堆栈跟踪复杂化,并使调试更加麻烦。

如果您要引发新的异常,则该异常应与原始异常有所不同。例如,它应该是另一种类型,或者以其他某种方式(例如更具体的错误消息)阐明异常的原因。如果您不能做任何事情,那么只需使用throw;重新抛出当前异常。

或者,甚至更好的是,根本不要抓住它。重新抛出实际上也使堆栈跟踪变得一团糟(当前帧的错误位置设置为重新抛出点,而不是发生异常的位置),因此,如果您没有任何需要处理的内容例外,然后放手-让它传播并让呼叫者处理。

关于c# - 引发新的异常(exception)最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12847637/

10-11 23:05
查看更多