从指定基类的catch中捕获派生类异常

时间:2011-11-27 17:56:19

标签: c# oop inheritance exception-handling

所以我会说实话,这是作业作业。我知道如何使用try和catch,但我不太确定这个问题是什么,我不是要求答案,只是澄清。

问题: 使用继承来创建异常基类和各种异常派生类。编写一个程序来演示指定基类的catch捕获派生类异常。

我的基本思路是,我只创建一个名为say ..“Exceptionz”的新类,并继承自System.Exception,使几个类称为“Derived 1”,“Derived 2”,然后每个那些继承自“Exceptionz”。在那之后,我不确定问题要求我做什么。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分: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例外”异常,然后更具体的一个从它派生的权限被拒绝,文件未找到等。