加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – asp.net mvc 3抛出异常

发布时间:2020-12-16 03:21:40 所属栏目:asp.Net 来源:网络整理
导读:我在webconfig中打开了自定义错误并重定向到“/ Error / Trouble”.这是按设计工作的. Elmah正在记录错误.错误视图也在显示. 问题是我想检查我的Error控制器的Trouble操作中的抛出错误.当抛出错误时,在MVC将您重定向到自定义错误处理程序后,如何访问它? 如
我在webconfig中打开了自定义错误并重定向到“/ Error / Trouble”.这是按设计工作的. Elmah正在记录错误.错误视图也在显示.

问题是我想检查我的Error控制器的Trouble操作中的抛出错误.当抛出错误时,在MVC将您重定向到自定义错误处理程序后,如何访问它?

如果CurrentUser为null,我会抛出异常:

if (CurrentUser == null)
        {
            var message = String.Format("{0} is not known.  Please contact your administrator.",context.HttpContext.User.Identity.Name);
            throw new Exception(message,new Exception("Inner Exception"));
        }

我希望能够在我的自定义错误处理程序(“错误/故障”)中访问它.你如何访问例外?

这是我的麻烦行动:

public ActionResult Trouble()
    {
        return View("Error");
    }

这是我的观点:

@model System.Web.Mvc.HandleErrorInfo

<h2>
    Sorry,an error occurred while processing your request.
</h2>
@if (Model != null)
{
    <p>@Model.Exception.Message</p>
    <p>@Model.Exception.GetType().Name<br />
    thrown in @Model.ControllerName @Model.ActionName</p>
    <p>Error Details:</p>
    <p>@Model.Exception.Message</p>
}

System.Web.Mvc.HandleErrorInfo是我的Trouble视图的模型,它是空的.谢谢你的帮助.

解决方法

我找到了一个解决方法:

在Global.asax我这样做:

protected void Application_Error()
    {
        var exception = Server.GetLastError();

        HttpContext.Current.Application.Lock();
        HttpContext.Current.Application["TheException"] = exception;
        HttpContext.Current.Application.UnLock();
    }

在错误/麻烦中我这样做:

var caughtException = (Exception)HttpContext.Application["TheException"];
        var message = (caughtException!= null) ? caughtException.Message : "Ooops,something unexpected happened.  Please contact your system administrator";
        var ex = new Exception(message);
        var errorInfo = new HandleErrorInfo(ex,"Application","Trouble");
        return View("Error",errorInfo);

这很有效.但这似乎是一种奇怪的方式.有没有人有更好的解决方案?谢谢你的帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读