欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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é)請看代碼
復(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

相關(guān)文章

最新評(píng)論