0
我想從catch塊中拋出一個自定義的異常,也就是說,每當發生任何異常時它都應該被catch塊捕獲並拋出一個自定義的異常。我正在嘗試使用下面的代碼,但將catch塊中的運行時異常設置爲「未處理的異常」。我們可以從catch塊中拋出一個自定義異常嗎?
try{
///some error
}
catch(Exception e){
try{
throw new CustomException("Exception1", e);
}
catch(CustomException ce)
{
Console.WriteLine("Custom Exception Caught" + ce.StackTrace);
}
}
public class CustomException : Exception
{
public CustomException : base()
{
}
public CustomException(string message, Exception innerException) : base(message, innerException)
{
processError(message, innerException);
}
}
public static void processError(string mgs, Exception e)
{
switch(mgs)
{
case "Exception1":
Console.WriteLine("Exception1 caught" + e.StackTrace);
break;
case "Exception2":
Console.WriteLine("Exception2 caught" + e.StackTrace);
break;
default:
Console.WriteLine("Some other Exception caught" + e.StackTrace);
break;
}
}
任何有關上述問題的提示都非常感謝。提前致謝。
「但是出現錯誤」對我們來說太過模糊以至於無法幫助您。你什麼時候得到錯誤 - 在編譯時或執行時?如果是在執行時,這可能是因爲沒有什麼能夠捕捉到你拋出的'CustomException' ... –
@ Jin Skeet,根據你的疑問編輯。 – Anand
你的編輯顯示如果在'try'塊中拋出'CustomException',但是你從下面的'catch'塊拋出它......這個新異常不會被catch塊捕獲它上面。目前還不清楚你想在這裏發生什麼 - 你想要拋出'CustomException'嗎? –