MVC 笔记——异常处理

来源:互联网 发布:ubuntu卸载qq2012 编辑:程序博客网 时间:2024/05/18 00:41

MVC中的异常处理

原文地址:http://www.cnblogs.com/shenba/archive/2011/04/16/2018441.html

这篇的介绍比较简单,另一篇有更加详细的介绍

地址:http://myeducs.cn/lunwen-resource/Net-biancheng/jiandanshixian-net-MVC-zidingyicuowuchuli-page/


异常处理方法一:

在方法或者类前标记HandlerError


[HandleError(View="Error")]

publicclassHomeController : Controller

{

//[HandleError(View="Index")]

publicActionResult Index()

{

ViewBag.Message ="Modify this template to jump-start your ASP.NET MVC application.";

return View();

}


异常处理方法二:

重写Controller类的onException方法,将这个重写放在一个BaseController中后,以后需要的Controller都可以继承这个类。

protectedoverridevoid OnException(ExceptionContext filterContext)

{

//base.OnException(filterContext);

filterContext.ExceptionHandled =true;

filterContext.Result =newRedirectResult(Url.Action("Error","Shared"));

}


异常处理方法三

这一条没怎么懂,贴出来慢慢看

public class AboutErrorAttribute : FilterAttribute, IExceptionFilter
    {
        
#region IExceptionFilter 成员

        
public void OnException(ExceptionContext filterContext)
        {
            UrlHelper url 
= new UrlHelper(filterContext.RequestContext);
            filterContext.Result 
= new RedirectResult(url.Action("AboutError""AboutError"));
        }

        
#endregion
    }

声明一个AboutErrorAttribute方法,继承FilterAttribute,实现IExceptionFilter接口。

之后在方法或类前面添加[AboutError]调用

[AboutError]
        public ActionResult About()
        {
            
return View();
        }

以上是第一篇内容,第二篇中介绍了一些属性,用于改变HandleError的属性,这里只贴出一篇例子。

HomeController类

[HandleError(Order = 2)] 
public class HomeController : Controller 

    public ActionResult Index() 
    { 
        ViewData["Message"] = "Welcome to ASP.NET MVC!"; 
 
        return View(); 
    } 
 
    public ActionResult About() 
    { 
        return View(); 
    } 
 
    [HandleError] 
    public ActionResult ThrowException() 
    { 
        throw new ApplicationException(); 
    } 
 
    [HandleError(View = "CustomErrorView", ExceptionType = typeof(NotImplementedException))] 
    public ActionResult ThrowNotImplemented() 
    { 
        throw new NotImplementedException(); 
    } 

本文来自网学(http://myeducs.cn),转载请注明出处:http://myeducs.cn/lunwen-resource/Net-biancheng/jiandanshixian-net-MVC-zidingyicuowuchuli-page/



0 0
原创粉丝点击