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

bru*_*ski 0 c# oop inheritance exception-handling

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

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

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

我在这里先向您的帮助表示感谢!

Ste*_*ins 5

它要求您按照您的建议创建异常(Exceptionz 作为您的基类,从 Exception 派生,然后是另外两个使用 Exceptionz 作为基类的类 Derived1 和 Derived2),然后执行以下操作:

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

try
{
  throw new Derived2();
}
catch (Exceptionz)
{
  Console.WriteLine("Caught Derived 2");
}
Run Code Online (Sandbox Code Playgroud)

因此,您表明捕获基类 (Exceptionz) 也会捕获其任何派生异常(Derived1 和 Derived2)。类似于您可能会遇到“I/O 异常”异常,然后是从它派生的更具体的异常,用于权限被拒绝、文件未找到等。