2010-09-30 30 views
1

我放了一些全局错误处理,但是在通过导致未处理的异常进行测试时遇到问题。如何在ASP.NET Web App中生成未处理的异常?

这是我现在所能想到的。请随意添加到这个列表中,以更多的方式去处理未处理的异常。

  1. 危险的表单数据 - 输入字符,如<和>在一个文本框 ,并试图在URL参数提交
  2. 将无效值 - 例如,如果你页面 www.test.com/home ?testid = XXX其中XXX是表单编号/标识# 您试图拉起,放入一个不存在于 URL中的数字并按回车。

我敢肯定,我可以改变一些存储过程,否则与我的数据访问组件混乱,但我宁愿不必改变任何地方的任何代码...我想能够生成这些例外前端,就像用户一样。

让我知道你有什么想法,或者如果你们都需要其他信息。

回答

2

一种可能的方式做到这一点是使用你追加到查询字符串参数执行的代码你强制引发异常的URL,可能仅限于调试构建或通过web.config中的设置,以便了解了解您的参数的最终用户无法玩转。

喜欢的东西

http://mypage.aspx?...&ThrowException=true&ComponentName=Whatever... 

你必须设计语法,然后手动将参数追加到地址栏中的URL。然后,你可以添加调用要测试异常处理静态的helper方法有点像在你的代码的关键位置以下(如数据访问层)

[Conditional("Debug")] 
static void SimulateError(string componentName) 
{ 
    if(Request.QueryString["ComponentName"] == componentName) 
    { 
     throw ...; 
    } 
} 
1

你不能够测试你最终用户environemnt的所有异常,因为这不是你大部分未处理的异常应该来自哪里。

This question might be useful to you as well.

+0

我不希望能够测试所有的我的例外,我只是希望能够随意生成它们来测试我的全局错误处理,而不会改变代码。感谢您的链接。 – Albert 2010-09-30 14:36:02

2

使用

throw new Exception("this is my exception"); 

地方在顺利通过调用请求的页面

相关问题