Exception.InnerException 属性的使用
例子(部分代碼):
protected void Button3_Click(object sender, EventArgs e)
{
try
{
Divide(10,0);
}
catch (Exception ex)
{
Label3.Text = "產生的異常信息如下:<br/>";
Label3.Text += ex.Message + "<br/>";
直接使用InnerException屬性可以獲取內部異常的信息
Label3.Text += ex.InnerException.Message;
}
}
//div方法將拋出其產生的異常, 并傳遞內部異常
private double Divide(int x, int y)
{
try
{
return DivideOperation(x, y);
}
catch (Exception ex)
{
//使用Exception重載的構造函數傳遞內部異常
throw new Exception("來自Divide方法的異常", ex);
}
}
產生一個被0除的異常
private double DivideOperation(int x, int y)
{
try
{
return x / y;
}
catch (DivideByZeroException ex)
{
throw new DivideByZeroException("產生了一個試圖除以零的異常, 來自DivideOperation方法!");
}
}
在Divide方法中,調用了DivideOperation方法,首先DivideOperation方法會拋出一個DivideByZero
-Exception類型的異常,Divide方法將捕獲該異常,但是Divide并不是直接吞沒了該異常,而是拋出了一個異常,并將由DivideOperation方法產生的異常作為Exception構造函數的一個參數向外傳遞,這種傳遞異常的方式稱為異常傳遞。當捕捉這種嵌套類型的異常時,開發人員可以使用Exception類的InnerException屬性來獲取內部異常的詳細信息,這是一個Exception類型的屬性
輸出結果:
產生的異常信息如下:
來自Divide方法的異常
產生了一個試圖除以零的異常, 來自DivideOperation方法!
?
總結
以上是生活随笔為你收集整理的Exception.InnerException 属性的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家具厂价直销宣传文案28句
- 下一篇: 老党员先进事迹材料3篇