C# 异常是否应该包含动态数据?

C# 异常是否应该包含动态数据?,c#,java,php,C#,Java,Php,我有这样的方法: 由于我有异常代码,在异常消息中包含动态数据是一种好的做法吗?例如,异常可能如下所示: throw new Exception("First parameter is wrong. You passed: {$param1}", 601); 您的看法是,动态消息是好消息还是我应该坚持使用固定文本作为异常消息 异常是否应该包含动态数据 应该吗?不,但他们可以!但请确保“生成”此动态数据不会导致另一个异常 但是您永远不应该抛出新异常()。为您自己的自定义异常扩展它,或者使用Ja

我有这样的方法:

由于我有异常代码,在异常消息中包含动态数据是一种好的做法吗?例如,异常可能如下所示:

 throw new Exception("First parameter is wrong. You passed: {$param1}", 601);
您的看法是,动态消息是好消息还是我应该坚持使用固定文本作为异常消息

异常是否应该包含动态数据

应该吗?不,但他们可以!但请确保“生成”此动态数据不会导致另一个异常


但是您永远不应该
抛出新异常()
。为您自己的自定义异常扩展它,或者使用Java异常,比如
IllegalArgumentException

抛出异常从来都不是一件好事。您应该创建不同的自定义异常类来扩展异常。根据问题的不同,您可以抛出不同的异常。这是一个有效点。我使用的是自定义异常,我只是简化了示例。只需告诉
param1
错误以及错误原因,不要传递参数的值,因为它可能包含敏感数据。它怎么可能是敏感数据?用户刚刚把它传了进来!
 throw new Exception("First parameter is wrong. You passed: {$param1}", 601);