我希望在我的C#应用程序中,当断言失败时,抛出异常并使编辑器跳转到该位置。但是,弹出了一个“中止/重试/忽略”消息框。有没有办法控制这种行为?
.Fail()
方法中抛出异常:public class ThrowListener : TextWriterTraceListener
{
public override void Fail(string message)
{
throw new Exception(message);
}
public override void Fail(string message, string detailMessage)
{
throw new Exception(message);
}
}
我建议你自己创建一个异常类型,它接受消息和详细消息,这样就更容易知道异常来自哪里。
当调试器直接跳转到throw
时,你需要向上一级调用堆栈的.Assert()调用。
你可以像这样添加它:
Debug.Listeners.Insert(0, new ThrowListener());
http://msdn.microsoft.com/en-us/library/system.diagnostics.debug.aspx
也许您想使用除 Debug.Assert 之外的其他东西?例如,如果无法处理,则仅抛出异常,或在需要时调用一些应用程序定义的 onError 处理程序?