28. november 2000 - 19:09Der er
5 kommentarer og 1 løsning
fange en fejl
Hvis jeg nu laver en hjemmeside (ASP) og jeg fx trækker noget ud af en database, så får jeg en fejl hvis jeg prøver at trække noget ud som ikke eksistere, fx et feltnavn der ikke eksistere.
Kan jeg fange denne fejl, fremfor at brugeren får en fejl?
Jeg kan se man i VB script kan lave noget on error... Er det samme tilfældet med JavaScrit?
nix, ikke direkte i forlængelse af dit ASP script, men du kan jo lave en JavaScript variabel der indeholder oplysninger om eventuelle fejl under afviklingen af dit ASP script!
ja, sbk. Det er noget med \"ON ERROR RESUME NEXT\" i ASP/VB. Jeg kan ikke detaljerne - så du skal i hvert fald ikke give mig points for det.
Men jeg godt lidt at du tænker i de baner! Jeg selv er fortaler (spørg mine studerende) for at fange fejl og behandle dem selv. Og det kan jeg i ASP. De SQL-sætninger jeg fyrer af, bliver checket, og ved en fejl får jeg en email med det samme, og kan så rette den. Sådan bør det være. Samtidig kan du selv bestemme hvad brugeren skal se.
I JavaScript (i hvert fald i version 4 browsere) kan man ikke - der må man bare gøre det rigtigt.
Hvis du mener JScript - altså det der eksekveres på serveren kan du gøre det (OG DET ER DER ALT FOR MANGE DER IKKE GØR (også VBScript-folk):
try { foretag db handling } catch(e) { // db handling fejlede Response.Write(\'Der gik ged i den, Mulle\'); // Response.Write(e.description); }
Hvis der opstår en fejl (exception) i TRY linierne, hopper program-eksekveringen til CATCH linierne. Når man angiver (e) efter \'catch\', har man exception objektet at arbejde med, og det indeholder bla. propertien .description, som er den tekst der ellers skrives i browseren.
Husk, at når du har fanget en exception, så fortsætter eksekveringen af linierne efter catch statementet. Hvis det skal undgås, skal du selv foretage f.eks. en return, eller sætte en Err variabel, som du kan tjekke på. HUSK at frigive ALLE de objekter du måtte have kreeret inden fejlen, før du forlader funktionen. Dvs. at hvis det er et db-kald der fejler, så skal du mindst lukke din Connection (.Close()), og sætte den til null.
Du kan i øvrigt lave nestede try-catch statements, hvilket ofte kan være hensigtsmæssigt.
Det er korrekt mpj, men den har begrænset anvendelse. Så begrænset, at den stort set er overflødig, hvis man ellers koder korrekt. Fanger f.eks. ikke en dårlig URL eller andre såkaldte browserfejl. Som de skriver: An error event occurs only when a JavaScript syntax or runtime error occurs, not when a browser error occurs.
Ok... Jeg mente det nok... Brugte den engang så brugeren ikke skulle få fejlsjovere.... ;o)
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.