Avatar billede Søren Bech Morsing Praktikant
28. november 2000 - 19:09 Der 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?
Avatar billede el_gnu Nybegynder
28. november 2000 - 19:12 #1
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!
Avatar billede erikjacobsen Ekspert
28. november 2000 - 19:56 #2
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.
Avatar billede lthrane Nybegynder
29. november 2000 - 07:40 #3
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.

lthrane
Avatar billede mpj Nybegynder
29. november 2000 - 20:27 #4
Der er da en ting der hedder:
onError
Avatar billede erikjacobsen Ekspert
29. november 2000 - 22:42 #5
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.
Avatar billede mpj Nybegynder
30. november 2000 - 21:26 #6
Ok...
Jeg mente det nok...
Brugte den engang så brugeren ikke skulle få fejlsjovere.... ;o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester