On Error Resume Next
Gör pryl som kan generera fel
If Err <>0 then
...så har du Err-objektet att tillgå, där Err.Source, Err.Description och Err.Number är intressantast. M.h.a. Err.Number kan du skriva dina egna felmeddelanden
end if
4 svar · 205 visningar · startad av Brimba
Hej!
Låt oss säga att det blir fel när jag ställer en SQL fråga, felmeddelandet blir tex:
ADODB.Fields error '800a0cc1'
ADO could not find the object in the collection corresponding to the name or ordinal reference requested by the application.
/kategori/produkter.asp, line 23
Kan man göra så att vid alla felmeddelanden att det visas något annat istället?
Kanske genom at skriva något i stil med:
If connection.Errors.Count > 0 Then
..kod om något blev fel..
Else
..den vanliga koden..
End If
Tack!
On Error Resume Next
Gör pryl som kan generera fel
If Err <>0 then
...så har du Err-objektet att tillgå, där Err.Source, Err.Description och Err.Number är intressantast. M.h.a. Err.Number kan du skriva dina egna felmeddelanden
end if
Kan man inte fånga alla felmeddelanden i ett egen definierat felmeddelande?
Vill du skriva något exempel på det du beskrev ovan?
Visst kan du använda endast ett meddelande, men du måste ändå explicit fånga alla fel, med On Error Resume Next.
blablablablabla.....
On Error Resume Next
conn.execute("SÄLLACKT STJÄRNA FRÅMM DATABASEN")
if Err.Number<>0 then
response.write "Hoppsan!"
else
response.write "Tack!"
end if
Vill du fånga flera fel, utan att stanna (på egen risk), kan du göra så här:
blablablabla.....
On Error Resume Next
Gör något som kan bli fel
CheckErr
blablabla.....
On Error Resume Next
Gör något annat som kan bli fel
CheckErr
blablabla....
if strLongError<>"" then
with response
.write "<table border=1>
.write "<tr><td>Felnummer</td><td>Beskrivning</td><td>Källa</td></tr>"
.write strLongError
.write "</table>"
end with
end if
Sub CheckErr()
if Err.Number<>0 then
strLongError=strLongError & "<tr><td>" & Err.Number & "</td><td>" & Err.Description & "</td><td>" & Err.Source & "</td></tr>"
end if
End Sub
Hej!
Jag har ingen möjlighet att testa detta just nu, men tänkte att jag kunde slänga in en fråga och få det bekräftat.
Är det så här du menar?
<%
On Error Resume Next
Set Connection = Server.CreateObject("ADODB.Connection")Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\dmab\internet.mdb"
SQLStmt = "SELECT * FROM Tabell"
SET RS = Connection.Execute(SQLStmt)
if Err.Number<>0 then
response.write "Hoppsan! Det har skett något fel, var god emaila oss om vad som hände."
else
%>
Detta är den normala hemsidan om det inte blev något fel när man försökte köra SQL frågan.
<%end if%>
Har jag förstått rätt eller fel?
Tack!