ASP三層アーキテクチャError処理クラス
6940 ワード
この節から、いくつかのASPの中の3つの共通クラスを紹介します.それは私が設計した3層のアーキテクチャの中を貫いて、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オブジェクトのエラーリストを格納するために使用され、各エラーの間に別々に使用する.
%>
<br><!--//
<br>alert("<%=strJSMessage %>"); 'プロンプトエラーボックスをポップアップします.
<br>history.back(); '前のページに戻る
<br>//-->
<br>
response.end′はここで出力を停止することに注意し、エラーを避けると同時にプログラムが実行される.
End Sub
e.Alert_Backメソッドは、以下に説明するように、いくつかの類似の効果を拡張しています.実装の手順は、追加のソースコードを参照してください.
e.Alert(ByVal vMessage)はエラーメッセージボックスのみをポップアップし、前のページには戻らず、プログラムの実行も停止しない.
e.Alert_Close(ByVal vMessage)はエラーメッセージボックスをポップアップし、ユーザーがOKをクリックした後、現在のウィンドウを閉じます.
e.OK_Go(ByVal vMessage,ByVal vURL)ポップアップメッセージボックスは、ユーザーがOKをクリックすると、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 ""
以下の4つはResponse.Endのパッケージは、操作習慣に従って定義されたいくつかの同じ機能の方法にすぎません.
e.Pause == Response.End
e.P == Response.End
e.Stop == Response.End
e.End == Response.End
もう1つの属性e.Messageは、eオブジェクトのすべてのエラーリストを出力します.
具体的な実装の詳細はコードを参照してください
この項では、エラー処理クラス、クラス名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オブジェクトのエラーリストを格納するために使用され、各エラーの間に別々に使用する.
%>
<br><!--//
<br>alert("<%=strJSMessage %>"); 'プロンプトエラーボックスをポップアップします.
<br>history.back(); '前のページに戻る
<br>//-->
<br>
response.end′はここで出力を停止することに注意し、エラーを避けると同時にプログラムが実行される.
End Sub
e.Alert_Backメソッドは、以下に説明するように、いくつかの類似の効果を拡張しています.実装の手順は、追加のソースコードを参照してください.
e.Alert(ByVal vMessage)はエラーメッセージボックスのみをポップアップし、前のページには戻らず、プログラムの実行も停止しない.
e.Alert_Close(ByVal vMessage)はエラーメッセージボックスをポップアップし、ユーザーがOKをクリックした後、現在のウィンドウを閉じます.
e.OK_Go(ByVal vMessage,ByVal vURL)ポップアップメッセージボックスは、ユーザーがOKをクリックすると、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 ""
以下の4つはResponse.Endのパッケージは、操作習慣に従って定義されたいくつかの同じ機能の方法にすぎません.
e.Pause == Response.End
e.P == Response.End
e.Stop == Response.End
e.End == Response.End
もう1つの属性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 , "
" , "
")
strJSMessage = Replace(strJSMessage , vbCrLf , "")
JSMessage = strJSMessage
End Property
' ==================================================================================
' Method
' ==================================================================================
' Add : add an Error message
Public Sub Add(ByVal vMessage)
blnError = true
strMessage = strMessage & vMessage & "
"
End Sub
Public Sub Clear
blnError = false
strMessage = ""
End Sub
' Alert
Public Sub Alert(ByVal vMessage)
strJSMessage = JSMessage & vMessage
%>
<br><!--//
<br>alert("<%=strJSMessage %>");
<br>//-->
<br>
End Sub
' Alert_Back : alert and back
Public Sub Alert_Back(ByVal vMessage)
strJSMessage = JSMessage & vMessage
%>
<br><!--//
<br>alert("<%=strJSMessage %>");
<br>history.back();
<br>//-->
<br>
response.end
End Sub
' Alert_Close : alert and close
Public Sub Alert_Close(ByVal vMessage)
strJSMessage = JSMessage & vMessage
%>
<br><!--//
<br>alert("<%=strJSMessage %>");
<br>window.opener = null;
<br>window.close();
<br>//-->
<br>
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
%>
<br><!--//
<br>alert("<%=strJSMessage %>");
<br>location.href = '<%=vURL %>';
<br>//-->
<br>
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
Public Sub Br
response.Write "
"
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