平衡信息异常和干净代码的好方法是什么?
使用我们的公共SDK,我们倾向于提供非常有用的消息,说明为什么发生异常。例如: if (interfaceInstance == null) { string errMsg = string.Format( "Construction of Action Argument: {0}, via the empty constructor worked, but type: {1} could not be cast to type {2}.", ParameterInfo.Name, ParameterInfo.ParameterType, typeof(IParameter) ); throw new InvalidOperationException(errMsg); } 但是,由于倾向于将重点放在错误消息而不是代码在做什么,这往往会使代码流变得混乱。 一位同事开始重构一些引发如下异常的异常: if (interfaceInstance == null) throw EmptyConstructor(); ... private Exception EmptyConstructor() …