日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

ASP.NET錯(cuò)誤處理的兩種方案

 悟靜 2012-04-30

網(wǎng)頁出錯(cuò),在所難免,如何處理,方案任選.

一般頁面出錯(cuò)后,我們的處理方法一般分為三步:業(yè)務(wù)邏輯→寫入日志→跳轉(zhuǎn)到默認(rèn)頁或指定頁

 

【方案一】

1.在web.config添加一個(gè)節(jié)點(diǎn),指定跳轉(zhuǎn)到的默認(rèn)頁.mode為RemoteOnly表示本地報(bào)黃頁,其它用戶跳轉(zhuǎn).

<system.web>
    
<customErrors mode="On" defaultRedirect="default.aspx">            
    
</customErrors>
</system.web>

 

2.在Global.asax中添加錯(cuò)誤處理

復(fù)制代碼
    void Application_Error(object sender, EventArgs e) 
    { 
        
//在出現(xiàn)未處理的錯(cuò)誤時(shí)運(yùn)行的代碼
        
//業(yè)務(wù)處理
        
//寫日志,下面是一個(gè)例子,建議使用第三方控件Log4Net
        try
        {
            
using (System.IO.StreamWriter sw = System.IO.File.AppendText("D:\\AX.txt"))
            {
                sw.WriteLine(Server.GetLastError().InnerException.Message);
                sw.WriteLine(Server.GetLastError().InnerException.StackTrace);
                sw.Flush();
            }
        }
        
catch (Exception)
        {
        }
    }
復(fù)制代碼

 

3.如果某個(gè)Page出錯(cuò)后需要跳轉(zhuǎn)到指定頁,重寫Page的AddParsedSubObject方法,

以保證頁面加載最開始為Errorpage屬性賦值,其屬性依賴于第一步中的mode="On",

不確定mode為RemoteOnly是否可以

(跳轉(zhuǎn)頁后面會(huì)帶系統(tǒng)默認(rèn)的參數(shù)aspxerrorpath=...)

懶人可以寫在Page_Load方法的第一句話中,該方法之前出錯(cuò)將會(huì)使用第二步中的處理方式.我是懶人...

    protected override void AddParsedSubObject(object obj)
    {
        ErrorPage 
= "Log4Net.aspx";
        
base.AddParsedSubObject(obj);
    }

【追加】還可以在頁面前端加Attribute:ErrorPage

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="OnErrorTest.aspx.cs" Inherits="OnErrorTest" ErrorPage="~/AX.aspx" %>

 

【方案二】

1.在Global.asax中添加錯(cuò)誤處理,并指定默認(rèn)頁.

復(fù)制代碼
    void Application_Error(object sender, EventArgs e) 
    { 
        
//在出現(xiàn)未處理的錯(cuò)誤時(shí)運(yùn)行的代碼
        
//業(yè)務(wù)處理
        
//寫日志,下面是一個(gè)例子,建議使用第三方控件Log4Net
        try
        {
            
using (System.IO.StreamWriter sw = System.IO.File.AppendText("D:\\AX.txt"))
            {
                
//Server.GetLastError().InnerException.ToString()是異常的詳細(xì)內(nèi)容
                sw.WriteLine(Server.GetLastError().InnerException.ToString());
                sw.Flush();
            }
        }
        
finally
        {
            
//跳轉(zhuǎn)到默認(rèn)頁
            Server.Transfer("Default.aspx");
        }
    }
復(fù)制代碼

 

2.如果某個(gè)Page出錯(cuò)后需要跳轉(zhuǎn)到指定頁

復(fù)制代碼
    void Page_Error(object sender, EventArgs e)
    {   
        
//業(yè)務(wù)處理
        
//寫日志
        
//跳轉(zhuǎn)到指定頁
        
//Server.Transfer("Log4Net.aspx");
        
//
        
//Response.Redirect("Log4Net.aspx");

        
//清除錯(cuò)誤,如果執(zhí)行了上面的跳轉(zhuǎn)頁,將永遠(yuǎn)不會(huì)執(zhí)行到這句話
        
//如果不清除,就會(huì)執(zhí)行Global.asax的Application_Error()方法
        
//Server.ClearError();
    }
復(fù)制代碼

 

推薦使用方案一,因?yàn)榭梢栽趙eb.config修改跳轉(zhuǎn)的默認(rèn)值

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多