捕获块下面的代码(关闭后)或不是?

时间:2011-04-08 22:18:03

标签: exception exception-handling

我有一段代码来查看网络共享。一个错误是UnauthorizedAccessException,如果我需要使用基本身份验证登录来访问共享,就会出现这种情况。

因为如果你在异常时弹出窗口时登录会出现这个问题,那么这是否属于可以处理的异常?此外,写一下这是个好主意:

            string[] directories = null;

            try
            {
                    directories = Directory.GetDirectories(path);
            }
            catch (UnauthorizedAccessException unauthorizedAccessException)
            {

                Logger.Error(unauthorizedAccessException.Message, unauthorizedAccessException);
                MessageBox.Show("An error has occur. Please check that you do not need to sign in to access the share. " + unauthorizedAccessException.Message, UiConstants.MessageBoxTitle, MessageBoxButtons.OK, MessageBoxIcon.Error)
            }

......更多代码在这里...

或者,在try块中,插入所有代码。我的印象是,如果异常可以恢复,那么catch块下面可能有代码。构建此类代码的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

在我看来,try / catch块是一个非常好的指示器,内部代码正在执行一个单独的“动作”,因此,在catch之后放置更多东西往往会导致您违反方法的单一责任理论。

我经常看到有2个,3个,4个堆叠的try / catch块的方法,这总是表明代码做得太多了。