Asp.net 如何使用customErrors捕获异常?
在web.config中:Asp.net 如何使用customErrors捕获异常?,asp.net,Asp.net,在web.config中: <customErrors mode="RemoteOnly" defaultRedirect="~/Errors.aspx"> <error statusCode="404" redirect="~/Error.aspx?code=404"/> </customErrors> 在这一行中,visual studio出现错误: System.Web.HttpException未处理 按用户代码 我应该在哪里捕获此
<customErrors mode="RemoteOnly" defaultRedirect="~/Errors.aspx">
<error statusCode="404" redirect="~/Error.aspx?code=404"/>
</customErrors>
在这一行中,visual studio出现错误:
System.Web.HttpException未处理
按用户代码
我应该在哪里捕获此错误?如果Visual Studio IDE在抛出行中断,则您正在调试模式下运行。在调试模式下,异常会导致执行停止 尝试运行网站(CTRL+F5),而不是调试网站(F5)。但是,请注意,随后您将获得常规的黄色ASP.NET异常页面,因为customErrors标记指定了“RemoteOnly”,这意味着自定义页面将仅显示给远程请求。您的请求不是远程的,因为您在为页面提供服务的机器上 要查看customErrors的操作,请将标记更改为:
<customErrors mode="On" defaultRedirect="~/Errors.aspx">
<error statusCode="404" redirect="~/Error.aspx?code=404"/>
</customErrors>
并使用CTRL+F5运行您的网站。这很好。在我接受这个答案之前还有一个问题:是否可以将字符串参数“404 Not Found”传递到重定向页面?不容易。如果这是您的要求,我将绕过customErrors并在global.asax中的Application_Error中编写我自己的异常处理程序。如果我使用Application_Error,我应该禁用customErrors?并在中执行类似于:Response.Redirect(“Error.aspx?code=404&string=bla bla bla”);?两人都同意。禁用CUSOMTERRS并写入重定向。但是,请记住,将对所有异常调用Application\u Error,而不仅仅是您的特定异常。您需要使用HttpContext.Current.Server.GetLastError()来获取异常并确定要执行的代码。
<customErrors mode="On" defaultRedirect="~/Errors.aspx">
<error statusCode="404" redirect="~/Error.aspx?code=404"/>
</customErrors>