[英]Can Debug.Assert be set to just throw an exception instead of popping up a window in C#?
每當我的C#應用程序中的斷言失敗時,我都想引發一個異常並使編輯器跳到該位置。 但是會彈出一個中止/重試/忽略消息框。 有沒有辦法控制這種行為?
不直接:這就是Debug.Assert所做的。 請參閱說明文件
http://msdn.microsoft.com/zh-CN/library/system.diagnostics.debug.aspx
也許您想使用除Debug.Assert之外的其他工具? 例如,如果無法處理就拋出異常,或者在需要時調用一些應用程序定義的onError處理程序?
或者,您可以通過添加偵聽器並掛接到該偵聽器來獲得所需的內容。 請參閱文檔。
您可以添加一個自定義的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);
}
}
我可能會派生出您自己的同時包含message和detailMessage的Exception類型,因此更明顯的是異常來自何處。
您將不得不提高對.Assert()調用的調用堆棧,因為調試器可能會直接將您帶到throw
。
您可以這樣添加它:
Debug.Listeners.Insert(0, new ThrowListener());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.