在try catch中使用try catch是否很好?

Hot*_*ter 20 .net c# asp.net c#-4.0

可能重复:
嵌套的Try/Catch阻止了一个坏主意吗?

目前我在try catch中使用try catch?目前的Senario在我们的申请中要求它.

void MyFun()
{
    try
    {
        //Process logic 1
        // ......
        try
        {
            //Process logic 2
            // ......
        } catch (Exception ex)
        {
            //write an error details in database
        }

        //Process Logic 3
        // ......

    } catch (Exception ex)
    {
        //show error msg
    }
}
Run Code Online (Sandbox Code Playgroud)

Ita*_*aro 14

没有特别的问题,特别是如果你想以不同的方式处理异常.
但是,如果内部异常和外部异常分别具有不同的类型E1, E2E1不是父类E2,则可以有两个相邻的catch子句.

try
{
  // do something
}
catch (E1 e1)
{
}
catch (E2 e2)
{
}
Run Code Online (Sandbox Code Playgroud)

正如Rob和J.Steen所述 - 这与问题中的情况略有不同,因为在这种情况下E1抛出代码后它将不会被执行.

  • 否.如果进程逻辑2抛出异常,则进程逻辑3将永远不会执行.它不一样. (5认同)

小智 1

此项表明这并不是一件坏事,您只需以其他方式处理该错误即可。

异常处理 try catch inside catch