62,041
社区成员
发帖
与我相关
我的任务
分享
//根据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)
{
Message.ShowMessage(me, 500);
Context.Response.End();
}
//将异常保存到Session中
Context.Session.Add("LastError", me);
IPage errorpage = website.GetErrorPage();//读取错误页面模板,输出自定义错误信息
Context.Response.StatusCode = 500;
errorpage.Render();
Context.Response.End();
}
<customErrors mode="Off">
<error statusCode="500" redirect="/Error.aspx" />
</customErrors>