我想在保留內部異常的同時顯示自定義異常消息。顯示自定義異常消息
這裏是我的示例代碼:
public class Class1
{
public Class1()
{
try
{
throw new WebException("Initial Exception");
}
catch (WebException we)
{
throw new myException("Custom Message", we);
}
}
}
public class myException : WebException
{
public myException(string msg, WebException e) : base(msg, e) { }
}
當我運行這段代碼就說明我在調試器中自定義消息:
仍然發送的InnerException消息給客戶端:
我在這裏做錯了什麼?如何在顯示我自己的自定義消息時保留內部異常?
請注意,它仍然顯示您的自定義myException信息。我猜這是ASP.NET服務器的一個「特性」,它首先顯示內部異常數據作爲問題的源頭。我想也許,這是爲了方便服務器端調試。可能有一個服務器配置選項來控制這個,但我不知道。 「 –
」您不應該定義從ApplicationException派生的新異常類,而應該使用Exception。另外,您不應該編寫捕獲ApplicationException的代碼。 - 微軟 –
另外,我想你可能希望'throw;'而不是'throw e;'作爲你最後的'Exception' catch'處理程序 - 它將保留堆棧信息,而你擁有的則不會。 –