国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP 三層架構(gòu) Error處理類

2024-05-04 11:08:47
字體:
供稿:網(wǎng)友
看到有朋友說前面一章講得沒必要,想想也確實(shí).本來是沒有打算講這些基礎(chǔ)的,只是行文起來沒有約束,就蕩開到基礎(chǔ)知識上面了.
 
 
 
從這節(jié)開始,將會給大家介紹幾個ASP中的三大通用類,它貫穿于我所設(shè)計(jì)的三層架構(gòu)中,是對ASP語法的擴(kuò)展,可以提高很多細(xì)節(jié)處理上的效率,可以算是一點(diǎn)點(diǎn)框架的味道. 
本節(jié)介紹錯誤處理類,類名Con_Error,在代碼頁面之初就進(jìn)行初始化,實(shí)例名為e,以下的e.add 即使用該錯誤類的實(shí)例化對象進(jìn)行操作. 
方法介紹: 
e.Add(ByVal vErrorMessage ) 記錄一個錯誤,并且設(shè)置 e.Error = true . 在程序檢測用戶名合法性等地方發(fā)現(xiàn)錯誤時,就調(diào)用這個方法,記錄一個錯誤信息. 
例如,用戶登陸時密碼錯誤,則調(diào)用 e.add("您的賬號或密碼錯誤") .這時候,錯誤對象e中便記錄了一個錯誤,錯誤對象的屬性e.Error=true .在后續(xù)操作中,可以使用錯誤對象的這個屬性進(jìn)行判斷. 
例如: 
出現(xiàn)錯誤后彈出小窗口提示錯誤,并返回前一頁. 
if e.Error then 
e.Alert_Back "請重新登錄!" 'Alert_Back 的作用在后面介紹. 
end if 
e.Alert_Back(ByVal vMessage) 使用Javascript彈出一個錯誤提示框,顯示目前所有的錯誤列表,Alert_Back(vMessage)中的vMessage顯示在最后一行,用于提示用戶在看到這個錯誤信息后需要采取的步驟. 并且返回到前一頁. 這個方法的代碼貼出來,大家會更好理解: 
Public Sub Alert_Back(ByVal vMessage) 
strJSMessage = JSMessage & vMessage 'JSMessage用于存儲e對象中的錯誤列表,每個錯誤之間用/n分開. 
%> 
<script language="javascript" > 
<!--// 
alert("<%=strJSMessage %>"); '彈出提示錯誤框. 
history.back(); '返回前一頁 
//--> 
</script> 
<% 
response.end '注意這里要停止輸出,避免出錯的同時程序還繼續(xù)執(zhí)行. 
End Sub 
e.Alert_Back 方法延伸了幾個類似效果的方法,如下一同介紹,實(shí)現(xiàn)的過程請看附加的源碼: 
e.Alert(ByVal vMessage) 只彈出錯誤提示框,不返回前一頁,也不停止程序的執(zhí)行. 
e.Alert_Close(ByVal vMessage) 彈出錯誤提示框,當(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頁面 
以上幾個方法的作用,大家應(yīng)該都很熟悉了,其實(shí)它們不僅限于錯誤處理的. 
e.Clear 清空錯誤對象中記錄的錯誤信息 , e.Error = false 
因?yàn)閑對象是一個全局的對象,可能在很多過程中都調(diào)用了. 當(dāng)你只需要統(tǒng)計(jì)某一個模塊中的錯誤時,可以在開始調(diào)用這個方法,清空e中的錯誤. 
以下幾個是對Response.Write的包裝,目的僅僅是為了使用時的方便快速. 
e.Debug(ByVal vMessage) 輸出調(diào)試信息. 當(dāng)程序完工時,其中會存在不少用Response.write 輸出的錯誤調(diào)試信息,要都刪掉又要細(xì)細(xì)地找. 使用e.Debug專門輸出調(diào)試信息,當(dāng)程序完成時,只需要搜索e.Debug,就可以找到所有的調(diào)試錯誤信息的位置. 
e.w(ByVal vMessage) 輸出信息. 僅僅是Response.write的簡單包裝,在程序中輸入e.w 比輸入Response.write 不知道要方便多少,而且總是容易寫錯. 
e.BR 輸出一個換行符,等同于 response.Write "<BR />" 
以下4個是對Response.End的包裝,只是按照操作習(xí)慣,定義的幾個一樣功能的方法: 
e.Pause == Response.End 
e.P == Response.End 
e.Stop == Response.End 
e.End == Response.End 
還有一個屬性e.Message ,輸出e對象中所有的錯誤列表 
具體的實(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 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 荆州市| 阳新县| 镇康县| 玉山县| 增城市| 芷江| 宾阳县| 伊金霍洛旗| 郎溪县| 大荔县| 石门县| 通山县| 神池县| 隆回县| 德江县| 福贡县| 秦安县| 林周县| 胶州市| 大足县| 随州市| 景谷| 剑河县| 钦州市| 同江市| 新竹县| 长子县| 云南省| 迁安市| 二连浩特市| 彰化市| 潞城市| 门头沟区| 蒙阴县| 宜都市| 邢台市| 肥西县| 花莲市| 渝中区| 金溪县| 西安市|