經過下面的代碼當我們爲一個try塊創建多個catch時,首先執行哪個塊?爲什麼?
例子:
try
{
//some code is executing..
//1.some SqlException thrown
//2.some FormatException thrown
//3. other Exception thrown
}
catch(SqlException sqlex)
{
Console.WriteLine("sqlexception is returned");
}
catch(FormatException fx)
{
Console.WriteLine("FormatException is returned");
}
catch(Exception ex)
{
Console.WriteLine("Mainexception is returned");
}
catch
{
Console.WriteLine("exception without any args is returned");
}
可能是什麼,它的輸出,爲什麼?
哪個catch塊會先執行,爲什麼?
如果我在try塊之後立即聲明catch(Exception ex),那麼它將不會編譯,並且會給其他catch塊發出錯誤 - 「之前的catch子句捕獲所有的異常」 - 這個catch塊參數System.Exception作爲主異常或主異常塊..?如果是的話爲什麼..?
請提前告知並提供幫助。
很好的說明可在MSDN:使用異常(http://msdn.microsoft.com/en-us/library/ms173161.aspx)和[異常和異常處理(HTTP其他幾個主題: //msdn.microsoft.com/en-us/library/ms173160.aspx) –