【问题标题】:How try and catch redirect to error page?如何尝试并捕获重定向到错误页面?
【发布时间】:2012-01-29 18:33:27
【问题描述】:

早上好,

我有一个将用户添加到系统的注册表单。例如,当管理员在出生日期中输入字母而不是日期时,就会发生异常。我在 web.config 中做了以下代码:

"customErrors mode="On" defaultRedirect="Error.aspx""

发生错误时,try and catch函数如何将管理员重定向到error.aspx?

【问题讨论】:

  • 让它失效保护不是更容易吗? (如果 dateofbirth != 不添加 DateTime 的形式。)
  • 在 catch 块中重新抛出异常

标签: c# asp.net linq-to-entities


【解决方案1】:

除非你做某事,否则如果你自己捕获异常,管理页面将重定向到 error.aspx。

它只会重定向未处理的异常。

更新 从您的 cmets 看来,您最好在页面上创建某种验证以及验证摘要,而不是依赖重定向到错误页面。你想要两件不能在一起的东西。

<asp:CompareValidator 
    id="dateValidator" runat="server"  
    Type="Date" 
    Operator="DataTypeCheck" 
    ControlToValidate="txtDatecompleted"  
    ErrorMessage="Please enter a valid date."> 
</asp:CompareValidator> 

【讨论】:

  • 如何在不尝试捕获的情况下将管理员重定向到错误页面?
  • 系统崩溃,出现错误页面。我不希望系统崩溃:P
  • 当然可以,否则您不会被重定向。查看我的更新,了解我认为对您来说更好的方法
【解决方案2】:

由于你已经捕获了这个异常,它不会重定向到错误页面。如果你想这样做,请尝试重新抛出异常。

catch (Exception)
{
   // your custom code
   throw;
}

【讨论】:

    【解决方案3】:

    听起来您需要捕获异常然后手动重定向(Response.Redirect)到您的错误页面。您可以在会话变量或应用程序变量中将异常传递给错误页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多