ASP und SQL-Datenabnk
Johannes
Hi Leute,
ich verbinde mich via ASP mit einer SQL-Datenbank. Wenn die Anmeldung bei dieser schief läuft (Passwort falsch) soll aber nicht die Fehlermeldung der SQL-Datnbank kommen, sondern ein von mir vorgegebener Text.
Kann mir irgendjemand sagen wie ich das anstellen kann???
Johannes
Hi Johannes,
ich verbinde mich via ASP mit einer SQL-Datenbank. Wenn die Anmeldung bei dieser schief läuft (Passwort falsch) soll aber nicht die Fehlermeldung der SQL-Datnbank kommen, sondern ein von mir vorgegebener Text.
Kann mir irgendjemand sagen wie ich das anstellen kann???
bau dir 'n eigenen error-handler:
dim strErrorMsg
dim bolErrors
strErrorMSg= ""
bolErrors= false
sub TrapError(strError)
bolErrors= true
strErrorMsg= strErrorMsg & strError & " ***** "
end sub
sub ProcessErrors()
if bolErrors then
response.write("alles kaputt hier! - " & strErrorMsg)
end if
end sub
on Error Resume Next
---und dann nach jeder kritischen aktion, deren fehlerverhalten du abfangen willst:
if Err.number<>0 then
TrapError "DESC: " & Err.description & " / NUM: " & Err.number & " / SRC: " & Err.source
end if
---und dann am scriptende noch:
ProcessErrors
so mache ich's immer...mag elegantere methoden geben, aber für meine zwecke war's immer ausreichend...
so long...
/*,*/
so mache ich's immer...mag elegantere methoden geben, aber für meine zwecke war's immer ausreichend...
so lange es funktioniert, ist es doch gut und das tut es
danke
Johannes
so mache ich's immer...mag elegantere methoden geben, aber für meine zwecke war's immer ausreichend...
so lange es funktioniert, ist es doch gut und das tut es
danke
Johannes
Hallo Johannes,
ich würde On Error Resume Next (da es alle Fehler ignoriert)
nicht global, sondern nur in einer Subroutine oder Funktion
verwenden.
%>
Private Sub TuWasOderAuchNicht()
On Error Resume Next
...
...
...
End Sub
%>
Wenn Du es global, also außerhalb einer Funktion defnierst,
werden alle Fehler ignoriert, was außerst fatale Folgen haben
kann. Daher solltest Du auch Deinen DB-Connect in einer
Subroutine durchführen.
Zu beachten ist vielleicht auch, daß auch alle (selbstgeschriebenen)Funktionen, die Du innerhalb der Routine mit Fehlerbehandlung
aufrufst, ebenfalls keine Fehler mehr bringen, da auch dort jetzt
jeglicher Fehler übergangen wird und selbst abgeprüft werden muss.
Tschau, Stefan
Hi Wowbagger
Das war eigentlich schon alles was ich brauchte. Trotzdem so rein interessenhalber: Kann ich den Quellcode auch irgendwie anpassen, so daß es für
verschiedenartige Errors auch unterschiedliche Texte ausgegeben werden???
Johannes
Hi Johannes,
Das war eigentlich schon alles was ich brauchte. Trotzdem so rein interessenhalber: Kann ich den Quellcode auch irgendwie anpassen, so daß es für
verschiedenartige Errors auch unterschiedliche Texte ausgegeben werden???
na ja sicher, z.b. so (hab's jetzt nur 'mal so getipt uznd nicht getestet :)):
---Also...Fehler anders 'loggen':
if Err.number<>0 then
TrapError Err.description, Err.number
end if
---und dann eine entspr. auswahl treffen in 'TrapError':
sub TrapError(descError, numError)
bolErrors= true
select case numError
case 1 strErrorMsg= strErrorMsg & "hallo" & VBCrLf
case 2 strErrorMsg= strErrorMsg & "Welt!" & VBCrLf
.
.
.
case else strErrorMsg= strErrorMsg & "unbekannter Fehler!" & VBCrLf
end select
end sub
so long...
/*,*/