程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP 三層架構 Error處理類

ASP 三層架構 Error處理類

編輯:關於ASP編程
從這節開始,將會給大家介紹幾個ASP中的三大通用類,它貫穿於我所設計的三層架構中,是對ASP語法的擴展,可以提高很多細節處理上的效率,可以算是一點點框架的味道.
本節介紹錯誤處理類,類名Con_Error,在代碼頁面之初就進行初始化,實例名為e,以下的e.add 即使用該錯誤類的實例化對象進行操作.
方法介紹:
e.Add(ByVal vErrorMessage ) 記錄一個錯誤,並且設置 e.Error = true . 在程序檢測用戶名合法性等地方發現錯誤時,就調用這個方法,記錄一個錯誤信息.
例如,用戶登陸時密碼錯誤,則調用 e.add("您的賬號或密碼錯誤") .這時候,錯誤對象e中便記錄了一個錯誤,錯誤對象的屬性e.Error=true .在後續操作中,可以使用錯誤對象的這個屬性進行判斷.
例如:
出現錯誤後彈出小窗口提示錯誤,並返回前一頁.
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 '注意這裡要停止輸出,避免出錯的同時程序還繼續執行.
End Sub
e.Alert_Back 方法延伸了幾個類似效果的方法,如下一同介紹,實現的過程請看附加的源碼:
e.Alert(ByVal vMessage) 只彈出錯誤提示框,不返回前一頁,也不停止程序的執行.
e.Alert_Close(ByVal vMessage) 彈出錯誤提示框,當用戶點擊確定後,關閉當前窗口
e.OK_Go(ByVal vMessage,ByVal vURL) 彈出信息提示框,當用戶點擊確定後,跳轉到vURL頁面
e.Go(ByVal vURL) 直接跳轉到vURL頁面
以上幾個方法的作用,大家應該都很熟悉了,其實它們不僅限於錯誤處理的.
e.Clear 清空錯誤對象中記錄的錯誤信息 , e.Error = false
因為e對象是一個全局的對象,可能在很多過程中都調用了. 當你只需要統計某一個模塊中的錯誤時,可以在開始調用這個方法,清空e中的錯誤.
以下幾個是對Response.Write的包裝,目的僅僅是為了使用時的方便快速.
e.Debug(ByVal vMessage) 輸出調試信息. 當程序完工時,其中會存在不少用Response.write 輸出的錯誤調試信息,要都刪掉又要細細地找. 使用e.Debug專門輸出調試信息,當程序完成時,只需要搜索e.Debug,就可以找到所有的調試錯誤信息的位置.
e.w(ByVal vMessage) 輸出信息. 僅僅是Response.write的簡單包裝,在程序中輸入e.w 比輸入Response.write 不知道要方便多少,而且總是容易寫錯.
e.BR 輸出一個換行符,等同於 response.Write "<BR />"
以下4個是對Response.End的包裝,只是按照操作習慣,定義的幾個一樣功能的方法:
e.Pause == Response.End
e.P == Response.End
e.Stop == Response.End
e.End == Response.End
還有一個屬性e.Message ,輸出e對象中所有的錯誤列表
具體的實現細節請看代碼
復制代碼 代碼如下:
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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved