我有一个小Try Catch
块,当无效数据传递给我的应用程序时会告诉用户更详细的信息:
try
{
//do something that throws an exception because of invalid data
}
catch (Exception ex)
{
throw new Exception("You have invalid data");
//throw ex;
}
当我使用无效数据在本地运行应用程序时,它会按预期抛出Exception
:
You have invalid data
然而,当我将它发布到服务器时,它只会像这样抛出Exceptions
同样的错误:
There was an error processing the request.
我仍然可以使用有效数据运行代码,因此我知道其他所有内容都正常运行。
我还需要添加其他内容web.config
吗?
这就是我现在所拥有的:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true"/>
</system.webServer>
答案 0 :(得分:0)
您不应该以这种方式显示您的网站访问者例外。
如果您要验证用户数据,请在用户界面级别使用form validation进行验证。
Exceptions are for dealing with exceptional circumstances。如果您的数据不是来自您的用户但导致某些特殊情况,那么您的用户可能不需要知道详细信息。在这种情况下,通常会显示一个页面,其中包含某种通用的“技术错误”消息,该消息为此问题道歉,并确保有人正在调查此问题。
如果要在开发期间查看服务器上的例外详细信息,则应在web.config中将自定义错误设置为off
<system.web>
<customErrors mode="Off">
</customErrors>
</system.web>