從這節(jié)開(kāi)始,將會(huì)給大家介紹幾個(gè)ASP中的三大通用類,它貫穿于我所設(shè)計(jì)的三層架構(gòu)中,是對(duì)ASP語(yǔ)法的擴(kuò)展,可以提高很多細(xì)節(jié)處理上的效率,可以算是一點(diǎn)點(diǎn)框架的味道.
本節(jié)介紹錯(cuò)誤處理類,類名Con_Error,在代碼頁(yè)面之初就進(jìn)行初始化,實(shí)例名為e,以下的e.add 即使用該錯(cuò)誤類的實(shí)例化對(duì)象進(jìn)行操作.
方法介紹:
e.Add(ByVal vErrorMessage ) 記錄一個(gè)錯(cuò)誤,并且設(shè)置 e.Error = true . 在程序檢測(cè)用戶名合法性等地方發(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ò)誤,并返回前一頁(yè).
if e.Error then
e.Alert_Back "請(qǐng)重新登錄!" 'Alert_Back 的作用在后面介紹.
end if
e.Alert_Back(ByVal vMessage) 使用Javascript彈出一個(gè)錯(cuò)誤提示框,顯示目前所有的錯(cuò)誤列表,Alert_Back(vMessage)中的vMessage顯示在最后一行,用于提示用戶在看到這個(gè)錯(cuò)誤信息后需要采取的步驟. 并且返回到前一頁(yè). 這個(gè)方法的代碼貼出來(lái),大家會(huì)更好理解:
Public Sub Alert_Back(ByVal vMessage)
strJSMessage = JSMessage vMessage 'JSMessage用于存儲(chǔ)e對(duì)象中的錯(cuò)誤列表,每個(gè)錯(cuò)誤之間用\n分開(kāi).
%>
script language="javascript" >
!--//
alert("%=strJSMessage %>"); '彈出提示錯(cuò)誤框.
history.back(); '返回前一頁(yè)
//-->
/script>
%
response.end '注意這里要停止輸出,避免出錯(cuò)的同時(shí)程序還繼續(xù)執(zhí)行.
End Sub
e.Alert_Back 方法延伸了幾個(gè)類似效果的方法,如下一同介紹,實(shí)現(xiàn)的過(guò)程請(qǐng)看附加的源碼:
e.Alert(ByVal vMessage) 只彈出錯(cuò)誤提示框,不返回前一頁(yè),也不停止程序的執(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頁(yè)面
e.Go(ByVal vURL) 直接跳轉(zhuǎn)到vURL頁(yè)面
以上幾個(gè)方法的作用,大家應(yīng)該都很熟悉了,其實(shí)它們不僅限于錯(cuò)誤處理的.
e.Clear 清空錯(cuò)誤對(duì)象中記錄的錯(cuò)誤信息 , e.Error = false
因?yàn)閑對(duì)象是一個(gè)全局的對(duì)象,可能在很多過(guò)程中都調(diào)用了. 當(dāng)你只需要統(tǒng)計(jì)某一個(gè)模塊中的錯(cuò)誤時(shí),可以在開(kāi)始調(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專門(mén)輸出調(diào)試信息,當(dāng)程序完成時(shí),只需要搜索e.Debug,就可以找到所有的調(diào)試錯(cuò)誤信息的位置.
e.w(ByVal vMessage) 輸出信息. 僅僅是Response.write的簡(jiǎn)單包裝,在程序中輸入e.w 比輸入Response.write 不知道要方便多少,而且總是容易寫(xiě)錯(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é)請(qǐng)看代碼
復(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ǔ)過(guò)程實(shí)現(xiàn)分頁(yè)效果(三層架構(gòu))
- ASP.NET三層架構(gòu)詳解 如何實(shí)現(xiàn)三層架構(gòu)