2011-11-27 21 views
0

所以我說實話,這是爲了做家庭作業。我知道如何使用try和catch,但我不太清楚這個問題是在問什麼,我沒有要求答案,只是澄清。從指定基類的catch捕獲派生類異常

問題: 使用繼承來創建異常基類和各種異常派生類。編寫一個程序來演示指定基類的catch捕獲派生類異常。

我的基本思路是,我只是創建一個叫「say」的新類,並且從System.Exception繼承,創建了幾個稱爲say,Derived 1,Derived 2的類,那些從「Exceptionz」繼承的。之後,我不確定這個問題要求我做什麼。

感謝您的幫助!

+0

這是用於C++的嗎? –

+0

這是[標籤:C#]? –

+0

是的C#抱歉! 10char – bruchowski

回答

3

它問你,你建議創建例外(Exceptionz爲你的基類,從Exception派生,那麼兩個類,Derived1和Derived2的使用Exceptionz作爲基地),然後做這樣的事情:

try 
{ 
    throw new Derived1(); 
} 
catch (Exceptionz) 
{ 
    Console.WriteLine("Caught Derived 1"); 
} 

try 
{ 
    throw new Derived2(); 
} 
catch (Exceptionz) 
{ 
    Console.WriteLine("Caught Derived 2"); 
} 

因此,您顯示捕獲您的基類(Exceptionz)還會捕獲其派生的任何異常(Derived1和Derived2)。類似於你可能有一個「I/O異常」例外,那麼從它衍生出來的更多特定的權限被拒絕,文件未找到等。

+0

所以這是捕獲基類類型「Exceptionz」,並且「throw new Derived_()」拋出一個對象,該類的類從System.Exception派生,Derived1和Derived2是通過從Exceptionz繼承而來的。對? **編輯只是看到你的底部解釋,非常感謝你史蒂文!爲我清除它! ** – bruchowski

+0

這是正確的,它是一個異常層次結構,然而,如果您感興趣的話,您可以捕捉到層次結構。 –