日期:2014-05-17  浏览次数:20392 次

问题还没解决,整理下再问,不懂的也请帮顶散分,谢谢。
前几天发了一个提问帖:http://bbs.csdn.net/topics/390512921
不知道是我表达有问题,还是怎么的,貌似回答的都不在点上。我整理下我的问题,请各位指教。如果有细节描述不详细的而不好作答,请与我沟通。
详情如下:
公司有一个Web解决方案,用的是工厂模式,专门写了个项目用Routing来控制URL,业务逻辑为:网址经过解析找到相应的模板,根据模板里的标签数据相应的数据并显示出来,当网址经过解析找不到可用的模板时则抛出异常,捕获异常后读取404页面模板,并输出“找不到文件”的自定义提示信息,而不是跳转到类似error.aspx的自定义错误页面。
相关代码片断:

//根据URL获取模板文件fulltemplateFilename,因为文件不存在,所以读取模板文件的操作就会出错,获取异常,继续查找默认模板文件夹里的模板文件,不存在,也没有读取到,于是调用MessageException来输出错误提示
try
{
    sr = new System.IO.StreamReader(fulltemplateFilename, System.Text.Encoding.UTF8);
    content = sr.ReadToEnd();
}
catch (Exception ex)
{
    if (sr == null)
    {
        #region 调用系统默认模板
        string DefaultTemplateFilename = System.Web.HttpContext.Current.Server.MapPath(FullFileName.Replace(this.Website.CallbackUrl, "/Template/Default/V0.1/"));
        dependencyList.Add(DefaultTemplateFilename);
        try
        {
            sr = new System.IO.StreamReader(DefaultTemplateFilename, System.Text.Encoding.UTF8);
            content = sr.ReadToEnd();
        }
        catch (Exception e)
        {
            if (sr == null)
                throw new MessageException("网页文件(" + FullFileName + ")不存在");//设置自定义错误信息
            else
                throw new Exception(e.Message);
        }
        #endregion
    }
    else
        throw new Exception(ex.Message);
}

输出错误提示的相关代码片断:
catch (MessageException me)
{
    #region
    //当未定义错误页模板时,输出系统界面      
    if (string.IsNullOrEmpty(website.Error.Redirect) == true)
    {