18. juli 2005 - 22:45Der er
24 kommentarer og 1 løsning
Fejl håndtering og log af samme
Jeg har kigget omkring efter fejl håndtering i asp Så vidt jeg kan se er eneste mulighed at bruge On Error Resume Next Jeg har forstået det som om at man skal angive dette før hver eneste "tvivlsomme" kode for at kunne registrere fejlen Er det virkelig korrekt? Jeg kunne godt tænke mig total set på hele min side at lave eet stort error tjek Således at hvis der noget som helst sted sker en fejl, så noteres denne i en log, med diverse oplysninger om fejlen Er det overhovedet muligt i asp? I bund og grund er det ok med mig at brugeren får en fejlmedelelse og at scriptet stopper ved en fejl Men jeg vil gerne have en log over disse fejl Og så orker jeg ikke skulle sætte error håndtering ind overalt Kunne man evt gøre det gennem global.asa Altså have en slags error listener siddende på applications nivau? Eller er jeg på herrens mark ? ;o)
Hvis du benytter JScript på serveren kan du benytte "rigtig" exception-handling med try...catch...finally. Det giver dig væsentlig bedre muligheder end i VBScript. På den anden side kunne man drage visse ligheder mellem flg. kode:
[JScript]:
try { // et forsøg på at udføre en operation } catch(e) { // håndtering af en fejl... }
og [VBScript]:
On Error Resume Next
' et forsøg på at udføre en operation if err.number <> 0 then ' håndtering af en fejl... ' evt. en GOTO label_hvor_fejlhåndtering_starter... (virker muligvis i VBScript). end if
Kør disse 2 linier på din server, det slår eventlogging til af dien ASP applikationer
cscript c:\Inetpub/AdminScripts/adsutil.vbs set /W3SVC/AspLogErrorRequests "true" cscript c:\Inetpub/AdminScripts/adsutil.vbs set /W3SVC/AspErrorsToNTLog "true"
steent >> nu er det ikke "min" server ;o) , så jeg kan ikke lige se hvordan jeg skulle kunne køre de linjer? ...desværre
softspot >> jeg kører vbscript, har egentlig aldrig tænkt på om jeg også kan køre JScript, men pointen er vel lidt den samme som du også siger. Min pointe er så om følgende - som er det jeg ønsker - er særlig smart -- try { 500-1000 linjer kode }catch(e){ håndtering } --
Er det i øvrigt ikke mest passende at håndtere fejl så tæt på kilden som muligt, da det så er lettere at finde ud af hvad årsagen til fejlen er... sådan har jeg i det mindste altid lært det :)
softspot >> jo i princippet er jeg enig, men scriptet stopper jo som default med en fejlbesked til brugeren, uanset hvor denne fejl opstår. Derfor jeg tænkte om det ikke er muligt overordnet blot at logge de fejl
Jeg er ikke helt sikker på om jeg forstår dig korrekt, men hvis du håndterer fejlen stopper scriptet ikke nødvendigvis - det er jo ikke alle fejl der er super kritiske :)
Jeg er ikke interesseret i at lade scriptet køre videre ved fejl Jeg er interesseret i at brugeren får den sædvanlige fejlmeddelelse, hvad enten det så er at databasen ikke kan benyttes, eller at syntaksen er forkert, eller filen ikke eksisterer - det er fint nok at brugeren får den fejl og det er fint nok at scriptet stopper
Men det ville være rart hvis jeg kunne følge med i hvor mange fejl der kommer, hvornår de kommer og hvorfor de kommer, samt om nogen af dem måske er mere kritiske end andre
Men det kan selvfølgelig så godt være at det kun kan lade sig gøre hvis man selv har kontrol over serveren :o/
Jeg kunne jo selvfølgelig selv lave den, men så skulle jeg samtlige steder i koden lave disse "resume next" blokke overalt, det virker omvendt som "overkill"
jo det er muligt Men da det ikke er min egen server, men et lejet webhotel, hvordan skulle jeg så kunne eksekvere kode på serveren? Og hvis jeg endelig fik lov at se deres log, ville jeg så ikke se loggen over samtlige webhoteller de har - usmart måske?
Og så synes jeg det er vildt irriterende hvis jeg ikke selv kan lave en error overvågning. Det er ikke fordi det er livsnødvendig eller noget. Jeg synes bare det ville være rart såmend
meen jeg tror nu at hvis jeg på et tidspunkt skal skifte så bliver det til php, men det bliver ikke lige med det her da det er organisations arbejde og derfor billigt site :o)
Jeg er ikke php haj, og ved ikke lige hvad du mener præcis? Men man kan da lave sine egne klasser osv Jeg tror php er et skridt mere "nede i maskineriet" end asp, men det er blot en fornemmelse jeg har
Jeg tænkte mere på dit valg mellem ASP.NET og PHP. Det er min opfattelse at ASP.NET er så godt integreret med systemet som det kan være (uden at kende noget til PHP i øvrigt). Derfor er jeg nysgerrig for hvorfor dit valg ville falde på PHP frem for .NET - det var såmænd ikke andet :)
tja det ved jeg egentlig ikke, i forhold til normal asp er jeg ikke i tvivl om at jeg tror at php er bedre ( det lød meget godt ikke, jeg er ikke i tvivl om noget jeg tror :o/ hehe ) Men jeg er ikke i dybden med php, nogen siger det minder om C og i det har jeg da kunne se lidt genkendelse i hist og pist i den smule jeg har set til det af og til
Men jeg kender helder ikke asp.net, så derfor er det svært at sige. Fordelen ved .net skulle eftersigende også være at man selv kan vælge sproget, altså om man vil bruge vbscript eller c# eller lign, eller tager jeg fejl?
Men den tid den sorg/glæde , det er ikke noget som står lige for døren
Hvis du vil igang med .NET kan jeg kun anbefale dig at komme igang igår ;)
Det er min erfaring at det tager lang tid at lære i dybden (primært på grund af tyngden i frameworket).
Mht. sprogvalg synes jeg at noget af det elegante ved .NET er, at man vælger det sprog man befinder sig bedst med (stort set :)). Så kan man benytte sig af den VBScript-, JScript-, Delphi-, C#-, C++- eller hvilket-sprog-man-nu-kender-viden man nu ligger inde med. Ud over det så er der hele klassehierarkiet som giver et solidt fundament at udvikle videre på (herunder udvide allerede eksisterende funktionalitet eller bare benytte den der allerede er implementeret).
Bemærk at jeg ikke siger dette ikke er muligt i PHP, men det er de fordele jeg ser i .NET... :)
Anyways! Held og lykke med din logningsudfordring :)
oki doki ingen forslag? :o( Det er nok ikke muligt så - æv
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.