0

我在面试中遇到了一个关于自定义例外的问题。如下所示,有四个捕获每个自定义异常的多个捕获。面试官让我为 catch 块编写一个伪代码,我如何处理所有四个自定义异常。

在此处输入图像描述

我回答为

        try 
        {   try 
            {
                try { }
                catch (DEx dEx) { Console.WriteLine(dEx.Message); }
            }
            catch (BEx bEx) { Console.WriteLine(bEx.Message); }
            catch (CEx cEx) { Console.WriteLine(cEx.Message); }
        }
        catch (AEx aEx) { Console.WriteLine(aEx.Message); }  

它是正确的还是错误的?

4

1 回答 1

1

CEx 和 DEx 继承于 BEx,BEx 继承自 AEx。所以异常处理应该从下往上开始。基础异常最后。

try
    {
       // statements causing exception
    }
    catch( CEx cEx )
    {
       // error handling for CEx
    }
    catch( DEx dEx )
    {
       // error handling for DEx
    }
    catch( BEx bEx )
    {
       // error handling for BEx
    }
    catch( AEx aEx )
    {
       // error handling for AEx
    }
    finally
    {
       // statements to be executed
    }
于 2013-04-25T03:52:45.490 回答