gpt4 book ai didi

c# - 是否可以将 Debug.Assert 设置为只抛出异常而不是在 C# 中弹出窗口?

转载 作者:太空狗 更新时间:2023-10-30 00:53:58 25 4
gpt4 key购买 nike

每当我的 C# 应用程序中的断言失败时,我希望抛出异常并让编辑器跳转到该位置。但是会弹出一个中止/重试/忽略消息框。有没有办法控制这种行为?

最佳答案

您可以添加一个自定义 TraceListener,它会在任一 .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);
}
}

我可能会派生您自己的异常类型,它同时接受消息和 detailMessage,因此异常的来源更加明显。

您必须将调用堆栈提升到 .Assert() 调用,因为调试器可能会直接将您带到throw

你可以这样添加:

Debug.Listeners.Insert(0, new ThrowListener());

关于c# - 是否可以将 Debug.Assert 设置为只抛出异常而不是在 C# 中弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14493011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com