Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%
2
'=============================================================
3
'//
129 ghuddy 4
'//                  Exception Handler
119 ghuddy 5
'//
129 ghuddy 6
'// version:       	1.4
7
'// last modified:   20-Jul-2004 14:17 by Sasha Vukovic
119 ghuddy 8
'=============================================================
9
%>
10
<%
11
'------------- GLOBALS --------------
12
Const enumEXCEPTION_HANDLER_SESSION = "DM_EXCEPTION_HANDLER"
13
'------------------------------------
14
%>
15
<%
16
Class ExceptionHandler
129 ghuddy 17
 
18
   Private sMsgSummary
19
   Private sMsgDetails
20
   Private bIsDisplayed
21
   Private bErrorRedirect
22
   Private bLastOraFailed
23
 
24
   Private SEPARATOR
25
 
26
   Public Property Let ErrorRedirect ( bVal )
27
      bErrorRedirect = bVal
28
      Session( enumEXCEPTION_HANDLER_SESSION ) = NULL  ' Clear message session variable
29
   End Property
30
 
31
   Public Property Get MessageSummary
32
      MessageSummary = sMsgSummary
33
      bIsDisplayed = TRUE
34
   End Property
35
 
36
   Public Property Get MessageDetails
37
      MessageDetails = sMsgDetails
38
      bIsDisplayed = TRUE
39
   End Property
40
 
41
   Public Property Get LastOraFailed
42
      LastOraFailed = bLastOraFailed
43
   End Property
44
 
45
   '-----------------------------------------------------------------------------------------------------------------
46
   Public Sub LogAction ( nUserId, nEvent, sMethod, sActionScript, sDescription, ByRef OraDatabase )
47
      OraDatabase.ExecuteSQL _
48
      "BEGIN   pk_Utils.Log_Action ( "&_
49
         nUserId &","&_
50
         nEvent &","&_
51
         "'"& sMethod &"',"&_
52
         "'"& sActionScript &"',"&_
53
         "'"& sDescription &"'"&_
54
         "  ); "&_
55
      "END;"
56
   End Sub
57
   '-----------------------------------------------------------------------------------------------------------------
58
   Public Function Finally ()
59
      If IsNull( sMsgSummary ) OR bErrorRedirect Then
60
         Finally = TRUE
61
      Else
62
         Finally = FALSE
63
      End If
64
   End Function
65
   '-----------------------------------------------------------------------------------------------------------------
66
   Public Sub Try ()
67
      Err.Clear
68
   End Sub
69
   '-----------------------------------------------------------------------------------------------------------------
70
   Public Sub Catch ()
71
 
72
      If Err.Number <> 0 Then
73
 
74
         If IsNull( sMsgSummary ) Then
75
            sMsgSummary = Err.Source
76
            sMsgDetails = Err.Description
77
         End If
78
 
79
         ' Redirect to Message
80
         If bErrorRedirect Then
81
            Session( enumEXCEPTION_HANDLER_SESSION ) = sMsgSummary & SEPARATOR & sMsgDetails
82
            Call OpenInWindow ( "messages/msgPleaseNote.asp" )
83
            bIsDisplayed = TRUE
84
         End If
85
 
86
      End If
87
 
88
      Err.Clear
89
   End Sub
90
   '-----------------------------------------------------------------------------------------------------------------
91
   Public Sub TryORA ( ByRef objOraSession )
92
      Err.Clear
93
      bLastOraFailed = FALSE
94
 
95
      ' Begin DB transaction
96
      objOraSession.BeginTrans
97
 
98
   End Sub
99
   '-----------------------------------------------------------------------------------------------------------------
100
   Public Sub CatchORA ( ByRef objOraSession )
101
 
102
      If Err.Number <> 0 Then
103
 
104
         bLastOraFailed = TRUE
105
 
106
         If IsNull( sMsgSummary ) Then
107
            sMsgSummary = GetORAErrDescription ( Err.Description )
108
            sMsgDetails = Err.Description
109
         End If
110
 
111
         ' Roll back DB transaction
112
         objOraSession.RollBack
113
 
114
         ' Redirect to Message
115
         If bErrorRedirect Then
116
            Session( enumEXCEPTION_HANDLER_SESSION ) = sMsgSummary & SEPARATOR & sMsgDetails
117
            Call OpenInWindow ( "messages/msgPleaseNote.asp" )
118
            bIsDisplayed = TRUE
119
         End If
120
 
121
      Else
122
         bLastOraFailed = FALSE
123
 
124
         ' Commit db transaction
125
         objOraSession.CommitTrans
126
      End If
127
 
128
      Err.Clear
129
   End Sub
130
   '-----------------------------------------------------------------------------------------------------------------
131
   Private Function GetORAErrDescription ( sErrMsg )
132
      Dim tempArr, endOfMsg
133
 
134
      ' Example of ORAErr Description
135
      ' SQL execution error, ORA-20000: Duplicate Network Node name. ORA-06512: at "DM_DEV.PK_NETWORK_NODE", line 20 ORA-06512: at line 1
136
 
137
      tempArr = Split ( sErrMsg, ":" )      ' Oracle error message is split with :
138
 
139
      endOfMsg = InStr( tempArr(1), "ORA" )
140
 
141
      If endOfMsg > 0 Then
142
         GetORAErrDescription = Left( tempArr(1), endOfMsg - 1 )
143
 
144
      Else
145
         GetORAErrDescription = tempArr(1)
146
 
147
      End If
148
 
149
 
150
   End Function
151
   '-----------------------------------------------------------------------------------------------------------------
152
   Public Sub DisplayMessage ()
153
      Dim msgTemplate
154
      msgTemplate = ReadFile( APP_ROOT &"\scripts\note_style.html" )
155
      msgTemplate = Replace( msgTemplate, "%WIDTH%", "100%" )
156
      msgTemplate = Replace( msgTemplate, "%IMAGE%", "s_warning.gif" )
157
      msgTemplate = Replace( msgTemplate, "%DIV_NAME%", "DIV_MESSAGE" )
158
      msgTemplate = Replace( msgTemplate, "%NOTE%", sMsgSummary )
159
      msgTemplate = Replace( msgTemplate, "%MESSAGE_DETAILS%", sMsgDetails )
160
 
161
      Response.write msgTemplate
162
      bIsDisplayed = TRUE
163
   End Sub
164
   '-----------------------------------------------------------------------------------------------------------------
165
   Private Sub GetSessionMessages ()
166
      Dim tempArr
167
      If Session( enumEXCEPTION_HANDLER_SESSION ) <> "" OR NOT IsNull(Session( enumEXCEPTION_HANDLER_SESSION )) Then
168
         tempArr = Split ( Session( enumEXCEPTION_HANDLER_SESSION ), SEPARATOR )
169
         If UBound( tempArr ) > 0 Then
170
            sMsgSummary = tempArr(0)
171
            sMsgDetails = tempArr(1)
172
         End If
173
 
174
         Session( enumEXCEPTION_HANDLER_SESSION ) = NULL
175
 
176
      End If
177
   End Sub
178
   '-----------------------------------------------------------------------------------------------------------------
179
   Private Sub Class_Initialize()
180
      '// Perform action on creation of object. e.g. Set myObj = New ThisClassName
181
      SEPARATOR = "|SEPARATOR|"
182
 
183
      sMsgSummary = NULL
184
      bIsDisplayed = FALSE
185
      bErrorRedirect = TRUE      ' By Default On error redirect to error message page
186
      bLastOraFailed = FALSE
187
 
188
      Call GetSessionMessages ()
189
   End Sub
190
   '-----------------------------------------------------------------------------------------------------------------
191
   Private Sub Class_Terminate()
192
      '// Perform action on object disposal. e.g. Set myObj = Nothing
193
      If NOT bIsDisplayed AND NOT IsNull(sMsgSummary) Then
194
         Response.write ( sMsgSummary & "<br>" & sMsgDetails )
195
      End If
196
   End Sub
197
   '-----------------------------------------------------------------------------------------------------------------
119 ghuddy 198
End Class
129 ghuddy 199
%>