在CastleProject Monorail中捕获ControllerNotFoundException

时间:2012-09-24 14:48:30

标签: controller castle-windsor configuration-files castle castle-monorail

我使用标准的Monorail / Windsor / ActiveRecord堆栈来构建Web应用程序。在Web应用程序中,使用xml配置文件注册控制器(对于Windsor)。

当配置文件中尚未定义控制器时,MonoRailHttpHandlerFactory将(显然)抛出ControllerNotFoundException。

有没有办法捕获此异常并向用户显示自定义消息?

1 个答案:

答案 0 :(得分:1)

您总是可以在GLobalApplication中的Application_OnError()事件处理程序中找出错误。我们这样做:

public virtual void Application_OnError()
    {
        var error = Server.GetLastError();

        if ( error.GetType() != typeof( ControllerNotFoundException ) )
            return;

        // We don't want these errors in the event log
        Server.ClearError();

        //Handle page not found

        Server.TransferRequest( "/rescue/pagenotfound" );
    }