2011-04-08 45 views
0

我有一段代码看网络共享。一个错误是UnauthorizedAccessException,如果我需要使用基本身份验证来访问共享,则会发生这种情况。catch块下面的代码(关闭后)还是不是?

因为这个问题,如果你登陆的时候弹出在异常的时间中出现时消失了,并在今年秋天异常下可处理?此外,这将是一个好主意,写:

  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块下面有代码。构建这样的代码的最好方法是什么?

回答

0

在我看来一个try/catch块是一个很好的指标,该代码里面是做一个单一的“动作”,因此,把更多的东西渔获往往会导致你打破的单一责任理论后方法。

我经常看到有2个,3个,4层叠try/catch块的方法,这始终是一个迹象,表明该代码是做得太多。