webForumDet fria alternativet

Felhantering

2 svar · 223 visningar · startad av Ankman

AnkmanMedlem sedan juni 2002116 inlägg
#1

Hur hanterar man eventuella fel på bästa sätt?

Jag försöker att använda On Error Resume Next och sedan fånga upp felen och skicka ett mail till mig själv med felinformation som jag trodde jag skulle få med Server.GetlastError(). Det verkar dock som aspError-objektet ät tomt. Är jag helt fel ute eller?

Här är lite kod:

<%

If Err.Number <> 0 Then

'Call the GetLastError() method to trap the error
dim objerr
set objerr = Server.GetLastError()

'The variable objerr now contains the ASPError object

strBody = "ASP Code = " & objerr.ASPCode
strBody = strBody & vbcrlf & vbcrlf
strBody = strBody & "Number = " & objerr.Number
strBody = strBody & vbcrlf & vbcrlf
strBody = strBody & "Source = " & objerr.Source
strBody = strBody & vbcrlf & vbcrlf
strBody = strBody & "Filename = " & objerr.File
strBody = strBody & vbcrlf & vbcrlf
strBody = strBody & "LineNumber = " & objerr.Line

Set objEmail = Server.CreateObject("Dundas.Mailer")

'add specified To field to collection, if user did not enter a value redirect to the error page
objEmail.TOs.Add "jag@telia.com"

'set FromAddress property
objEmail.FromName = "Avsändare"
objEmail.FromAddress = "a.a.se"
'set the Subject property
objEmail.Subject = "Felmeddelande"
'set the message body
objEmail.Body = strBody
'now send the email
objEmail.SendMail
Set objEmail = Nothing
				
Err.Clear
				
Response.Redirect("error.asp?msg=" & Server.URLEncode("Ett ov&auml;ntat fel har intr&auml;ffat. Felet &auml;r rapporterat till administrat&ouml;ren"))
End If
%>

Mailet jag får ser ut så här:

ASP Code =
Number = 0
Source =
Filename =
LineNumber = 0

Tacksam för hjälp

emissionMedlem sedan dec. 19996 721 inlägg
#2

Om du kör On Error Resume Next så skapas aldrig ASPError-objektet. Använd den information som ligger i Err-objektet i stället.
Alternativ gör du din egen Status 500-errorsida där du har tillgång till ASPError.

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q299981

AnkmanMedlem sedan juni 2002116 inlägg
#3

OK. Det jag saknade i err-objektet är på vilken rad felet har inträffat. Det går inte att få fram detta va? Jag tror inte att jag har möjlighet att skapa en egen errorsida, skall kolla med webbhotellet.

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)