MonoRail学习笔记九:Rescue的使用

简介:

Rescue是MonoRail中处理异常的一种机制
在asp.net或者java开发中我们都要进行异常处理,即发生异常时跳转到某一个错误页面。以前很多时候我们都是自动定义一种方式来处理的,在MonoRail中提供了一种现成的机制来处理异常

使用方式很简单,只要加入一个Rescue属性就可以了。
我们先来看看一个最简单的方式:


Controller代码:
    [Rescue( " /error " )]
    
public   class  ErrorController : SmartDispatcherController
    
{
        
public ErrorController()
        
{
        }

        [Rescue(
"/argerror"typeof(ArgumentException))]
        
public void Index()
        
{
            
//throw new ArgumentException("dddd");
            throw new Exception("fff");
        }

    }


vm代码:
< html >
< body >
< center >
    
< h2 > 出错了 </ h2 >
    $context.LastException.Message
</ center >
</ body >
</ html >

那么当我们调用/error/index.rails页面时,由于Index方法抛出Exception,那么会自动显示出/error.vm文件,并且在此文件中可以取得异常的信息
当Index方法抛出ArgrmentException时,会自动显示出/argerror.vm文件
也就是说Rescue属性可以定义在类和方法上,在类上定义的话对类中所有方法有效,在方法中定义的话会覆盖到类中同类的异常处理机制

有了这种机制之后,我们就可以定义自己的一个异常类,然后再定义一个父的controller类,指定Rescue属性,其他所有的controller类都从此类继承。这样,在我们的代码中就不需要再考虑异常的处理了,会自动由父类接管。

其他相关点:
当某个方法不需要此异常机制时,可以如下定义:

        [SkipRescue]
        
public   void  SkipAction()
        
{
            
//throw new ArgumentException("dddd");
            throw new Exception("fff");
        }

指定SkipRescue属性就可以了


    本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2007/10/26/939046.html,如需转载请自行联系原作者


相关文章
Devexpress VCL Build v2014 vol 15.2.3 发布
2016年第一个版本,继续修补。 New Major Features in 15.2 What's New in VCL Products 15.2 Breaking Changes To learn about breaking changes in this version, ple...
1157 0
|
Shell Windows 数据格式
Devexpress VCL Build v2015 vol 15.1.2发布
2015年马上过半年了。终于第一个大版出来了。 What's New in 15.1.2 (VCL Product Line)   New Major Features in 15.1 What's New in VCL Products 15.
985 0
Devexpress VCL Build v2014 vol 14.2.7发布
2015年马上快过去一半了,这个玩意还在纠结在14版。其实也无所谓,反正就是改成15版,也还是这些 东西的修补。 What's New in 14.2.7 (VCL Product Line)   New Major Features in 14.
1166 0
|
容器
Devexpress VCL Build v2014 vol 14.2.6 发布
终于支持XE8 了。需要这么长时间吗? New Major Features in 14.2 What's New in VCL Products 14.2 Feature Highlights To learn about feature highlights in this versio...
1045 0
|
OLAP
Devexpress VCL Build v2014 vol 14.2.5 发布
和xe8 几乎同一天出来,但是目前官方不支持xe8. The following sections list all minor and major changes in DevExpress VCL 14.
1311 0
|
OLAP Shell
Devexpress VCL Build v2014 vol 14.2.4 发布
What's New in 14.2.4 (VCL Product Line)   New Major Features in 14.2 What's New in VCL Products 14.
1049 0
|
Windows
Devexpress VCL Build v2013 vol 14.1.5 发布
What's New in 14.1.5 (VCL Product Line)   New Major Features in 14.1 What's New in VCL Products 14.
1365 0