zoukankan      html  css  js  c++  java
  • 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日志--应用程序】。如下图:

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

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

  • 相关阅读:
    nginx-1.8.1的安装
    ElasticSearch 在3节点集群的启动
    The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
    sqoop导入导出对mysql再带数据库test能跑通用户自己建立的数据库则不行
    LeetCode 501. Find Mode in Binary Search Tree (找到二叉搜索树的众数)
    LeetCode 437. Path Sum III (路径之和之三)
    LeetCode 404. Sum of Left Leaves (左子叶之和)
    LeetCode 257. Binary Tree Paths (二叉树路径)
    LeetCode Questions List (LeetCode 问题列表)- Java Solutions
    LeetCode 561. Array Partition I (数组分隔之一)
  • 原文地址:https://www.cnblogs.com/tyb1222/p/2046343.html
Copyright © 2011-2022 走看看