C# EntLib 4.0:异常处理应用程序块

C# EntLib 4.0:异常处理应用程序块,c#,exception-handling,enterprise-library,C#,Exception Handling,Enterprise Library,我刚刚开始使用企业库异常处理块 看起来有点麻烦 我真的要做什么 try { //Do something with a DirectoryInfo object } catch(DirectoryNotFoundException ex) { bool rethrow = ExceptionPolicy.Handle(ex, _exceptionPolicyName); if(rethrow) throw; } 我想处理异常的任何地方 还是我

我刚刚开始使用企业库异常处理块

看起来有点麻烦

我真的要做什么

 try
 {
     //Do something with a DirectoryInfo object
 }
 catch(DirectoryNotFoundException ex)
 {
   bool rethrow = ExceptionPolicy.Handle(ex, _exceptionPolicyName);

   if(rethrow)
        throw;
 }
我想处理异常的任何地方

还是我应该把顶层包起来

 try
 {
     //Entrypoint code
 }
 catch(Exception ex)
 {
   bool rethrow = ExceptionPolicy.Handle(ex, _exceptionPolicyName);

   if(rethrow)
        throw;
 }

我的印象是我可以用属性来区分这一点?

您需要多少个位置来处理异常

此应用程序块主要用于处理层边界上的异常。例如,您的数据访问层的顶级代码可能会使用它,以便您可以配置是否以及如何记录DAL异常,是否包装非DAL异常等。但是您的私有内部方法根本不应该处理异常


不,EAL不做属性。

好的,这很好,我有各种服务一起解决问题。我想日志记录实际上与我的内部异常更相关。我处理的文件和文件夹往往会抛出异常和许多类型的异常。。。谢谢这帮了忙。为什么对内心的人更重要呢。我的意思正好相反。在服务和层边界处校准EAB。不要在低级别捕获异常,除非您的逻辑将对其执行不同的操作,例如包装IOException,以便添加文件名或其他上下文。