在类中添加断言

原创 2004年10月11日 17:33:00

简述:
用try捕获异常后主动抛出一个异常,在Global.asax.vb的Application_Error中用Server.ClearError()清除异常,用System.Web.HttpContext.Current.Response输出javascript代码实现信息提醒和返回上一页。


详细说明:
例如,把连接数据库的方法做成一个类cdbconn.vb。问题在于当数据库连接失败的时候,系统自动抛出的连接失败的异常的处理。
由于程序调用该类的对象后的动作不可预计,因此最好在处理该异常后,后台程序就此结束,返回之前的页面。
在类中捕获异常同样可以try,但是处理完后使后台程序就此结束就有点麻烦,在论坛中搜索到了思归大大给的一个连接:

HOW TO: Create Custom Error Reporting Pages in ASP.NET by Using Visual C# .NET
http://support.microsoft.com/default.aspx?scid=kb;EN-US;306355
vb.net的联接是
http://support.microsoft.com/default.aspx?scid=kb;EN-US;308132

实践得出方案如下:
在类文件cdbconn.vb中有
Try
            dbconn.Open()
        Catch ex As Exception
            'System.Web.HttpContext.Current.Response.Write(win.msgbox(strMsg_noneDatabase))
            Throw New System.Exception(strMsg_noneDatabase)
End Try
截获异常后再抛出一个异常。这话听起来有点毛病,主要的用途在于可能会需要处理异常带来的麻烦,这里没有什么需要处理,所以只是自定义一个异常信息给系统用户。

在Global.asax.vb中的Application_Error中添加相关动作
    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
        ' 在发生错误时激发
        Dim objErr As Exception = Server.GetLastError().GetBaseException()
        Dim err As String = "Error Caught in Application_Error event" & _
                            System.Environment.NewLine & _
                            "Error in: " & Request.Url.ToString() & _
                            System.Environment.NewLine & _
                            "Error Message: " & objErr.Message.ToString() & _
                            System.Environment.NewLine & _
                            "Stack Trace:" & objErr.StackTrace.ToString()

        'EventLog.WriteEntry("Sample_WebApp", err, EventLogEntryType.Error)
        Server.ClearError()
        System.Web.HttpContext.Current.Response.Write("<script language='javascript'>alert('" & objErr.Message.ToString & "');</script>")
        System.Web.HttpContext.Current.Response.Write("<script language='javascript'>history.go(-1);</script>")
    End Sub

这里'EventLog.WriteEntry("Sample_WebApp", err, EventLogEntryType.Error)会使异常正常抛出,而不会继续向下执行,所以注释掉了,msdn上拷来的,难道是版本问题?

最重要的就是Server.ClearError(),没有它异常会正常抛出的。截止到这一句系统会返回一张白纸,什么都没有这当然是不行的,所以下面用response输出提示,并返回上一页。至此问题解决。

Jmeter参数化、断言、集合点

一、参数化 参数化:简单的来理解一下,我们录制了一个脚本,这个脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统。 这个时候就需...
  • sunwangdian
  • sunwangdian
  • 2016年02月24日 17:38
  • 6616

Jmeter 快速入门教程(三)--添加响应断言

Jmeter 快速入门教程(三)--添加响应断言 上一节课,我们创建了一个测试场景,并进行了少量vuser的负载测试. 有时候我们执行了测试,但是发现并不是所有事务都执行成功了. 那...
  • hualusiyu
  • hualusiyu
  • 2014年09月04日 11:08
  • 1714

BadBoy检查点的添加

1、录制脚本 2、选择需要做检查点的内容,点击“Tool”,选择-“Add Assertion for Selection” 3、脚本栏左侧出现“Check For text” 4、点击...
  • zhangtaoee
  • zhangtaoee
  • 2017年01月08日 15:07
  • 1387

SOAPUI系列11- 测试步骤中设置断言

我们在编写测试套件时有时需要单独设置一个步骤做断言,那如何操作呢 在Test Step 处点右键 设置方式同在请求中设置断言是一样的 这里我设...
  • wanglha
  • wanglha
  • 2015年09月06日 11:04
  • 831

Qt中断言的使用

错误的处理常用来检查有害的输入数据,断言用来检查代码的的bug,Qt中提供了两个断言的宏Q_ASSERT()和Q_ASSERT_X().下面简单讲述下两个宏的使用: 1. Q_ASSERT(bool...
  • Andy_93
  • Andy_93
  • 2016年12月30日 10:00
  • 485

webdriver的断言使用

webdriver的断言使用 操作(action)、辅助(accessors)和断言(assertion): 操作action: 模拟用户与 Web 应用程序的交互。一般用于操作应用...
  • gzh0222
  • gzh0222
  • 2012年05月04日 16:53
  • 14407

一些常用的断言方式

一些常用的断言方式
  • xkhgnc_6666
  • xkhgnc_6666
  • 2016年08月14日 22:50
  • 1082

Qt入门-使用Qt中的断言

Qt中的断言函数有两个: (1) void Q_ASSERT ( bool test ) 当test为假时打印出警告信息。 示例: // File: div.cpp #include...
  • xgbing
  • xgbing
  • 2012年07月26日 16:35
  • 6868

JUnit 单元测试断言推荐 AssertJ

前言由于JUnit的Assert是公认的烂API,所以不推荐使用,目前推荐使用的是AssertJ。 AssertJ网站: http://joel-costigliola.github.io/asse...
  • qilixiang012
  • qilixiang012
  • 2016年02月01日 17:52
  • 757

Oracle不支持断言正则表达式?

 昨天遇到一个问题。clob字段里存着xml,要对内容进行提取,替换。提取我就用到了正则,但是发现用基本的匹配好使,但是一加上(?上网搜索,不少文章介绍说是支持这种匹配的。查官方文档,并没有这方面的介...
  • dlutqw
  • dlutqw
  • 2009年11月03日 07:45
  • 615
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在类中添加断言
举报原因:
原因补充:

(最多只允许输入30个字)