• EnterLib5.0 Handson异常处理


      看企业库方面的资料有一段时间了,从这一篇开始,打算将EnterLib5.0   Hands-on上的例子,结合我的实践与理解介绍一个系列的关于企业库基本的用法。EnterLib5.0   Hands-on上都是一些牛人做的一些DEMO,大家有兴趣可以自己下载下来看看。有一些是我翻译过来的,可能不太准确。我使用的是5.0的版本。VS的版本是2008 SP1。

      从我看的第一篇异常处理说起。要是有些理解偏差还希望高手指出。

          例子说明:检查输入的字符、如果带有数字那么程序将抛出异常。

      在本例中,需要添加应用的程序集有以下几个:

        1、Microsoft.Practices.EnterpriseLibrary.Common.dll

      2、Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll

      3、Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll

      4、Microsoft.Practices.EnterpriseLibrary.ServiceLocation.dll

      尽管只有ExceptionHandling程序集是异常处理的API,其他的程序集也是需要在Bin\Debug目录下的,他们为程序的异常处理提供了其他的功能。

         检查添加单词的按钮的事件里面的代码如下:

    1 try
    2 {
    3 // TODO: Handle exceptions
    4   PuzzlerService.Dictionary.AddWord(txtWordToCheck.Text);
    5 errorProvider1.SetError(txtWordToCheck, "");
    6 }
    7 catch (Exception ex)
    8 {
    9 bool exceptionResult = ExceptionPolicy.HandleException(ex, "UI Policy");
    10 if (exceptionResult)
    11 {
    12 throw;
    13 }
    14 MessageBox.Show(string.Format("Failed to add word {0}, please contact support.", txtWordToCheck.Text));
    15 }

      注意:抛出异常的方式是非常重要的,而不是throw ex。如果你“throw  ex”,堆栈异常将会被一个重新抛出异常点的堆栈跟踪所替换,通常这不是希望看到的效果

      下面介绍使用企业库的配置工具对配置文件进行配置的过程。

          1、右击App.config文件。选择"Edit Enterprise Library V5 Configuration"。如下图:

      2、给程序配置异常管理.如下图:

    3、为默认的策略点击名称栏坐标的箭头,这样配置工具会自动创建显示策略的属性。将属性的名字改为:"UI Policy"。注意:这里的名字就是以上在try{} catch{}块中的HandleException处理的名字参数。如下图:

    4、现在添加异常处理的策略。右击标题栏项"All Exceptions",点击"Add Handlers",在上下文菜单中点击"Add Logging Exception Handler"。如下如:

    5、这样,就会在配置文件中自动为异常处理配置异常的日志处理配置节,用默认的配置为日志应用块添加"Logging Settings"配置节。右击点”Logging Exception Handler“标题栏左侧的箭头显示处理的属性。默认的:处理将会使用文本异常格式【Text Exception Formatter】,并记录下日志信息到指定的目录下。如下是【General】目录。如下图:

         6、保存并关闭应用程序配置。

      至此,异常的基本配置就完成了。接下来运行程序:

         1、输入一个带数字的字符串,然后点击”Add Word“按钮。运行结果如下图:

       2、通过事件查看器查看日志。【计算机管理--事件查看器--Windows日志--应用程序】。如下图:

    点击其中一条错误日志,查看异常的详细信息。错误信息如下图:

    以上是企业库的基本日常处理,当然它还包括安全等等方面的信息,待下节再介绍。

  • 相关阅读:
    1、Spring Cloud Alibaba 新一代微服务解决方案
    springboot整合activemq(1)
    11.springboot+mybatis+dubbo+zookepper
    多线程的使用
    Spring 框架用到的 9 个设计模式汇总
    docker数据卷与数据卷容器
    4.GitHub的使用
    Spring Cloud中Hystrix、Ribbon及Feign的熔断关系
    git如何正确回滚代码
    1)Linux学习笔记:crontab命令
  • 原文地址:https://www.cnblogs.com/tyb1222/p/2046343.html
Copyright © 2020-2023  润新知