ASP 三層架構(gòu) Error處理類
更新時(shí)間:2009年09月20日 23:38:53 作者:
看到有朋友說前面一章講得沒必要,想想也確實(shí).本來是沒有打算講這些基礎(chǔ)的,只是行文起來沒有約束,就蕩開到基礎(chǔ)知識(shí)上面了.
從這節(jié)開始,將會(huì)給大家介紹幾個(gè)ASP中的三大通用類,它貫穿于我所設(shè)計(jì)的三層架構(gòu)中,是對(duì)ASP語法的擴(kuò)展,可以提高很多細(xì)節(jié)處理上的效率,可以算是一點(diǎn)點(diǎn)框架的味道.
本節(jié)介紹錯(cuò)誤處理類,類名Con_Error,在代碼頁面之初就進(jìn)行初始化,實(shí)例名為e,以下的e.add 即使用該錯(cuò)誤類的實(shí)例化對(duì)象進(jìn)行操作.
方法介紹:
e.Add(ByVal vErrorMessage ) 記錄一個(gè)錯(cuò)誤,并且設(shè)置 e.Error = true . 在程序檢測用戶名合法性等地方發(fā)現(xiàn)錯(cuò)誤時(shí),就調(diào)用這個(gè)方法,記錄一個(gè)錯(cuò)誤信息.
例如,用戶登陸時(shí)密碼錯(cuò)誤,則調(diào)用 e.add("您的賬號(hào)或密碼錯(cuò)誤") .這時(shí)候,錯(cuò)誤對(duì)象e中便記錄了一個(gè)錯(cuò)誤,錯(cuò)誤對(duì)象的屬性e.Error=true .在后續(xù)操作中,可以使用錯(cuò)誤對(duì)象的這個(gè)屬性進(jìn)行判斷.
例如:
出現(xiàn)錯(cuò)誤后彈出小窗口提示錯(cuò)誤,并返回前一頁.
if e.Error then
e.Alert_Back "請重新登錄!" 'Alert_Back 的作用在后面介紹.
end if
e.Alert_Back(ByVal vMessage) 使用Javascript彈出一個(gè)錯(cuò)誤提示框,顯示目前所有的錯(cuò)誤列表,Alert_Back(vMessage)中的vMessage顯示在最后一行,用于提示用戶在看到這個(gè)錯(cuò)誤信息后需要采取的步驟. 并且返回到前一頁. 這個(gè)方法的代碼貼出來,大家會(huì)更好理解:
Public Sub Alert_Back(ByVal vMessage)
strJSMessage = JSMessage & vMessage 'JSMessage用于存儲(chǔ)e對(duì)象中的錯(cuò)誤列表,每個(gè)錯(cuò)誤之間用\n分開.
%>
<script language="javascript" >
<!--//
alert("<%=strJSMessage %>"); '彈出提示錯(cuò)誤框.
history.back(); '返回前一頁
//-->
</script>
<%
response.end '注意這里要停止輸出,避免出錯(cuò)的同時(shí)程序還繼續(xù)執(zhí)行.
End Sub
e.Alert_Back 方法延伸了幾個(gè)類似效果的方法,如下一同介紹,實(shí)現(xiàn)的過程請看附加的源碼:
e.Alert(ByVal vMessage) 只彈出錯(cuò)誤提示框,不返回前一頁,也不停止程序的執(zhí)行.
e.Alert_Close(ByVal vMessage) 彈出錯(cuò)誤提示框,當(dāng)用戶點(diǎn)擊確定后,關(guān)閉當(dāng)前窗口
e.OK_Go(ByVal vMessage,ByVal vURL) 彈出信息提示框,當(dāng)用戶點(diǎn)擊確定后,跳轉(zhuǎn)到vURL頁面
e.Go(ByVal vURL) 直接跳轉(zhuǎn)到vURL頁面
以上幾個(gè)方法的作用,大家應(yīng)該都很熟悉了,其實(shí)它們不僅限于錯(cuò)誤處理的.
e.Clear 清空錯(cuò)誤對(duì)象中記錄的錯(cuò)誤信息 , e.Error = false
因?yàn)閑對(duì)象是一個(gè)全局的對(duì)象,可能在很多過程中都調(diào)用了. 當(dāng)你只需要統(tǒng)計(jì)某一個(gè)模塊中的錯(cuò)誤時(shí),可以在開始調(diào)用這個(gè)方法,清空e中的錯(cuò)誤.
以下幾個(gè)是對(duì)Response.Write的包裝,目的僅僅是為了使用時(shí)的方便快速.
e.Debug(ByVal vMessage) 輸出調(diào)試信息. 當(dāng)程序完工時(shí),其中會(huì)存在不少用Response.write 輸出的錯(cuò)誤調(diào)試信息,要都刪掉又要細(xì)細(xì)地找. 使用e.Debug專門輸出調(diào)試信息,當(dāng)程序完成時(shí),只需要搜索e.Debug,就可以找到所有的調(diào)試錯(cuò)誤信息的位置.
e.w(ByVal vMessage) 輸出信息. 僅僅是Response.write的簡單包裝,在程序中輸入e.w 比輸入Response.write 不知道要方便多少,而且總是容易寫錯(cuò).
e.BR 輸出一個(gè)換行符,等同于 response.Write "<BR />"
以下4個(gè)是對(duì)Response.End的包裝,只是按照操作習(xí)慣,定義的幾個(gè)一樣功能的方法:
e.Pause == Response.End
e.P == Response.End
e.Stop == Response.End
e.End == Response.End
還有一個(gè)屬性e.Message ,輸出e對(duì)象中所有的錯(cuò)誤列表
具體的實(shí)現(xiàn)細(xì)節(jié)請看代碼
Class Con_Error
Private blnError
private strMessage
private strJSMessage
Private Sub Class_initialize()
blnError = false
strMessage = ""
End Sub
Private Sub Class_Terminate()
End Sub
' ==================================================================================
' Property
' ==================================================================================
' Message :
Public Property Let Message(ByVal value)
strMessage = value
End Property
Public Property Get Message()
Message = strMessage
End Property
' Error number
Public Property Get Error()
Error = blnError
End Property
' JSMessage : show in messagebox
Private Property Get JSMessage()
strJSMessage = Replace(strMessage , "<br>" , "\n")
strJSMessage = Replace(strJSMessage , vbCrLf , "")
JSMessage = strJSMessage
End Property
' ==================================================================================
' Method
' ==================================================================================
' Add : add an Error message
Public Sub Add(ByVal vMessage)
blnError = true
strMessage = strMessage & vMessage & "<br>"
End Sub
Public Sub Clear
blnError = false
strMessage = ""
End Sub
' Alert
Public Sub Alert(ByVal vMessage)
strJSMessage = JSMessage & vMessage
%>
<script language="javascript" >
<!--//
alert("<%=strJSMessage %>");
//-->
</script>
<%
End Sub
' Alert_Back : alert and back
Public Sub Alert_Back(ByVal vMessage)
strJSMessage = JSMessage & vMessage
%>
<script language="javascript" >
<!--//
alert("<%=strJSMessage %>");
history.back();
//-->
</script>
<%
response.end
End Sub
' Alert_Close : alert and close
Public Sub Alert_Close(ByVal vMessage)
strJSMessage = JSMessage & vMessage
%>
<script language="javascript" >
<!--//
alert("<%=strJSMessage %>");
window.opener = null;
window.close();
//-->
</script>
<%
response.end
End Sub
'*********************************************
'Debug : response.write ,use it to delete debug message easily,just seach "e.Debug" from files
'*********************************************
Public Sub OK_Go(ByVal vMessage,ByVal vURL)
strJSMessage = JSMessage & vMessage
%>
<script language="javascript" >
<!--//
alert("<%=strJSMessage %>");
location.href = '<%=vURL %>';
//-->
</script>
<%
response.end
End Sub
Public Sub Go(ByVal vURL)
response.Redirect vURL
response.end
End Sub
'*********************************************
'Debug : response.write ,use it to delete debug message easily,just seach "e.Debug" from files
'*********************************************
Public Sub Debug (ByVal vMessage)
response.Write vMessage
response.flush
End Sub
' ****** W : write
Public Sub W(ByVal vMessage)
response.Write vMessage
End Sub
' ****** BR : write <br>
Public Sub Br
response.Write "<BR />"
End Sub
'*********************************************
'Pause : response.end , mark debug info clearly
'*********************************************
Public Sub Pause
response.end
End Sub
Public Sub P
response.end
End Sub
Public Sub [Stop]
response.end
End Sub
Public Sub [end]
response.end
End Sub
End Class
本節(jié)介紹錯(cuò)誤處理類,類名Con_Error,在代碼頁面之初就進(jìn)行初始化,實(shí)例名為e,以下的e.add 即使用該錯(cuò)誤類的實(shí)例化對(duì)象進(jìn)行操作.
方法介紹:
e.Add(ByVal vErrorMessage ) 記錄一個(gè)錯(cuò)誤,并且設(shè)置 e.Error = true . 在程序檢測用戶名合法性等地方發(fā)現(xiàn)錯(cuò)誤時(shí),就調(diào)用這個(gè)方法,記錄一個(gè)錯(cuò)誤信息.
例如,用戶登陸時(shí)密碼錯(cuò)誤,則調(diào)用 e.add("您的賬號(hào)或密碼錯(cuò)誤") .這時(shí)候,錯(cuò)誤對(duì)象e中便記錄了一個(gè)錯(cuò)誤,錯(cuò)誤對(duì)象的屬性e.Error=true .在后續(xù)操作中,可以使用錯(cuò)誤對(duì)象的這個(gè)屬性進(jìn)行判斷.
例如:
出現(xiàn)錯(cuò)誤后彈出小窗口提示錯(cuò)誤,并返回前一頁.
if e.Error then
e.Alert_Back "請重新登錄!" 'Alert_Back 的作用在后面介紹.
end if
e.Alert_Back(ByVal vMessage) 使用Javascript彈出一個(gè)錯(cuò)誤提示框,顯示目前所有的錯(cuò)誤列表,Alert_Back(vMessage)中的vMessage顯示在最后一行,用于提示用戶在看到這個(gè)錯(cuò)誤信息后需要采取的步驟. 并且返回到前一頁. 這個(gè)方法的代碼貼出來,大家會(huì)更好理解:
Public Sub Alert_Back(ByVal vMessage)
strJSMessage = JSMessage & vMessage 'JSMessage用于存儲(chǔ)e對(duì)象中的錯(cuò)誤列表,每個(gè)錯(cuò)誤之間用\n分開.
%>
<script language="javascript" >
<!--//
alert("<%=strJSMessage %>"); '彈出提示錯(cuò)誤框.
history.back(); '返回前一頁
//-->
</script>
<%
response.end '注意這里要停止輸出,避免出錯(cuò)的同時(shí)程序還繼續(xù)執(zhí)行.
End Sub
e.Alert_Back 方法延伸了幾個(gè)類似效果的方法,如下一同介紹,實(shí)現(xiàn)的過程請看附加的源碼:
e.Alert(ByVal vMessage) 只彈出錯(cuò)誤提示框,不返回前一頁,也不停止程序的執(zhí)行.
e.Alert_Close(ByVal vMessage) 彈出錯(cuò)誤提示框,當(dāng)用戶點(diǎn)擊確定后,關(guān)閉當(dāng)前窗口
e.OK_Go(ByVal vMessage,ByVal vURL) 彈出信息提示框,當(dāng)用戶點(diǎn)擊確定后,跳轉(zhuǎn)到vURL頁面
e.Go(ByVal vURL) 直接跳轉(zhuǎn)到vURL頁面
以上幾個(gè)方法的作用,大家應(yīng)該都很熟悉了,其實(shí)它們不僅限于錯(cuò)誤處理的.
e.Clear 清空錯(cuò)誤對(duì)象中記錄的錯(cuò)誤信息 , e.Error = false
因?yàn)閑對(duì)象是一個(gè)全局的對(duì)象,可能在很多過程中都調(diào)用了. 當(dāng)你只需要統(tǒng)計(jì)某一個(gè)模塊中的錯(cuò)誤時(shí),可以在開始調(diào)用這個(gè)方法,清空e中的錯(cuò)誤.
以下幾個(gè)是對(duì)Response.Write的包裝,目的僅僅是為了使用時(shí)的方便快速.
e.Debug(ByVal vMessage) 輸出調(diào)試信息. 當(dāng)程序完工時(shí),其中會(huì)存在不少用Response.write 輸出的錯(cuò)誤調(diào)試信息,要都刪掉又要細(xì)細(xì)地找. 使用e.Debug專門輸出調(diào)試信息,當(dāng)程序完成時(shí),只需要搜索e.Debug,就可以找到所有的調(diào)試錯(cuò)誤信息的位置.
e.w(ByVal vMessage) 輸出信息. 僅僅是Response.write的簡單包裝,在程序中輸入e.w 比輸入Response.write 不知道要方便多少,而且總是容易寫錯(cuò).
e.BR 輸出一個(gè)換行符,等同于 response.Write "<BR />"
以下4個(gè)是對(duì)Response.End的包裝,只是按照操作習(xí)慣,定義的幾個(gè)一樣功能的方法:
e.Pause == Response.End
e.P == Response.End
e.Stop == Response.End
e.End == Response.End
還有一個(gè)屬性e.Message ,輸出e對(duì)象中所有的錯(cuò)誤列表
具體的實(shí)現(xiàn)細(xì)節(jié)請看代碼
復(fù)制代碼 代碼如下:
Class Con_Error
Private blnError
private strMessage
private strJSMessage
Private Sub Class_initialize()
blnError = false
strMessage = ""
End Sub
Private Sub Class_Terminate()
End Sub
' ==================================================================================
' Property
' ==================================================================================
' Message :
Public Property Let Message(ByVal value)
strMessage = value
End Property
Public Property Get Message()
Message = strMessage
End Property
' Error number
Public Property Get Error()
Error = blnError
End Property
' JSMessage : show in messagebox
Private Property Get JSMessage()
strJSMessage = Replace(strMessage , "<br>" , "\n")
strJSMessage = Replace(strJSMessage , vbCrLf , "")
JSMessage = strJSMessage
End Property
' ==================================================================================
' Method
' ==================================================================================
' Add : add an Error message
Public Sub Add(ByVal vMessage)
blnError = true
strMessage = strMessage & vMessage & "<br>"
End Sub
Public Sub Clear
blnError = false
strMessage = ""
End Sub
' Alert
Public Sub Alert(ByVal vMessage)
strJSMessage = JSMessage & vMessage
%>
<script language="javascript" >
<!--//
alert("<%=strJSMessage %>");
//-->
</script>
<%
End Sub
' Alert_Back : alert and back
Public Sub Alert_Back(ByVal vMessage)
strJSMessage = JSMessage & vMessage
%>
<script language="javascript" >
<!--//
alert("<%=strJSMessage %>");
history.back();
//-->
</script>
<%
response.end
End Sub
' Alert_Close : alert and close
Public Sub Alert_Close(ByVal vMessage)
strJSMessage = JSMessage & vMessage
%>
<script language="javascript" >
<!--//
alert("<%=strJSMessage %>");
window.opener = null;
window.close();
//-->
</script>
<%
response.end
End Sub
'*********************************************
'Debug : response.write ,use it to delete debug message easily,just seach "e.Debug" from files
'*********************************************
Public Sub OK_Go(ByVal vMessage,ByVal vURL)
strJSMessage = JSMessage & vMessage
%>
<script language="javascript" >
<!--//
alert("<%=strJSMessage %>");
location.href = '<%=vURL %>';
//-->
</script>
<%
response.end
End Sub
Public Sub Go(ByVal vURL)
response.Redirect vURL
response.end
End Sub
'*********************************************
'Debug : response.write ,use it to delete debug message easily,just seach "e.Debug" from files
'*********************************************
Public Sub Debug (ByVal vMessage)
response.Write vMessage
response.flush
End Sub
' ****** W : write
Public Sub W(ByVal vMessage)
response.Write vMessage
End Sub
' ****** BR : write <br>
Public Sub Br
response.Write "<BR />"
End Sub
'*********************************************
'Pause : response.end , mark debug info clearly
'*********************************************
Public Sub Pause
response.end
End Sub
Public Sub P
response.end
End Sub
Public Sub [Stop]
response.end
End Sub
Public Sub [end]
response.end
End Sub
End Class
您可能感興趣的文章:
- ASP 使用三層架構(gòu) asp中使用類
- ASP 三層架構(gòu) Convert類實(shí)現(xiàn)代碼
- Asp.net 在三層架構(gòu)中事務(wù)的使用實(shí)例代碼
- 基于C#實(shí)現(xiàn)的三層架構(gòu)實(shí)例
- Java Web三層架構(gòu)的配置詳解
- asp.net實(shí)現(xiàn)三層架構(gòu)的例子
- ASP.NET創(chuàng)建三層架構(gòu)圖解詳細(xì)教程
- C# ComboBox的聯(lián)動(dòng)操作(三層架構(gòu))
- ASP.NET存儲(chǔ)過程實(shí)現(xiàn)分頁效果(三層架構(gòu))
- ASP.NET三層架構(gòu)詳解 如何實(shí)現(xiàn)三層架構(gòu)
相關(guān)文章
非常不錯(cuò)的ASP+Access數(shù)據(jù)庫的終極安全大法18則
非常不錯(cuò)的ASP+Access數(shù)據(jù)庫的終極安全大法18則...2007-06-06ASP生成隨機(jī)字符串(數(shù)字+大小寫字母)的代碼
ASP生成隨機(jī)字符串(數(shù)字+大小寫字母)的代碼...2007-10-10關(guān)于ASP循環(huán)表格的問題之解答[比較詳細(xì)]
在很多時(shí)候,我們采用原始的方法來解決一行內(nèi)循環(huán)3張圖片,如果上傳者只上傳了2張圖片,那么2張圖片間的距離會(huì)很大,因?yàn)槿鄙倭艘粋€(gè)<td> </td>.2008-11-11ASP中用select case代替其他語言中的switch case, default用case else
這篇文章主要介紹了ASP中用select case代替其他語言中的switch case, default用case else ,需要的朋友可以參考下2015-11-11asp頁面提示Response 對(duì)象 錯(cuò)誤 ASP 0156 : 80004005 HTTP 頭錯(cuò)誤
訪問asp頁面時(shí)提示Response 對(duì)象 錯(cuò)誤 ASP 0156 : 80004005 HTTP 頭錯(cuò)誤?,行 0 已將 HTTP 頭輸出到客戶端瀏覽器。任何對(duì) HTTP 頭的修改都必須在輸出頁內(nèi)容之前進(jìn)行。2011-09-09