29. januar 2004 - 10:05Der er
7 kommentarer og 1 løsning
Try catch, forklaring mangles..
Jeg prøver på at lære at bruge Try-Catch funktionen i .NET 2002, men de sider jeg finder, giver mig ikke rigtig noget forståelse af hvordan det hele virker...
Er der ikke en som kan give et godt eksempel, ganske simpelt, og forklare hvordan tingene virker... Det jeg mangler er noget som håndtere hvis jeg fejler en funktion på min side, da jeg skal sende en mail...
koden inde i try kan opføre sig "som den lyster". Du kan derfor fange et crash, således at hele applikationen ikke vælter. Fx. hvis du dividerer med nul: try { int a = 0; int k = 23 / a; } catch(System.Exception ex) { Response.Write("Der skete en fejl: " + ex.Message); }
hmm.... Det vil sige at jeg næsten kan lave mit eget fejlhåndterings system, hvis jeg kender alle fejlene, og gemmer dem, og begynder at bruge if sætninger?
hvad så hvis jeg har 3 ting den skal gøre, hver for sig? Skal jeg så lave 3 gange try catch, eller kan jeg lave 3 try i træk, og en catch? Eller er det kun en try men mange catch?
Syntax er som følger: try { } catch (<exception-type> [<identifier>]) { } [finally { }]
I try delen skriver du den kode der muligvis fejler. Du skal dog være opmærksom på at det kun bør være fejl du ikke kan forudse. En fejl som f.eks. at dividere med 0 bør du ikke lave med try-catch da du selv kan tjekke for det.
I catch delen skriver du så den kode der skal udføres hvis koden i try delen fejler. Den exception der bliver kastet filtreres via den exception du selv angiver i catch (<exception-type>...). Således vil "catch (Exception) {}" fange alt men ikke gøre noget. Catch delen kan desuden overloades så du kan fange forskellige exceptions automatisk, f.eks.: try {bla} catch (Exception1) {} catch (Exception2) {}.
Finally delen behøver du ikke have med, men den kan være god til oprydning. Koden heri er garenteret at blive udført lige meget hvad der sker. Det vil sige at lige meget hvad du gør i try og catch delen bliver koden i finally delen kørt. Dette gælder også selvom du har en return statement i try eller catch delen, eller hvis din catch del kaster en ny exception.
du kan have et vilkårligt antal fejl i din try { }. Den fanger dem alle. Du kan også fange specifikke fejl med flere catch. Fx. try { ... } catch(System.DivideByZeroException ex) { Response.Write("Du dividerede med nul"); } catch(System.Exception ex) { Response.Write("Der skete en uventet fejl: " + ex.Message); }
Jeg vender lige tilbage senere idag, eller senest i morgen med points, skal lige se om jeg kan få det til at virke i mit web, og se om jeg kommer ind i nogle problemer, men rigtige mange gange tak for jeres inputs... :)
Godt nok fik jeg aldrig det der try catch til at virke, men points skal du have sekhmet_ds, tror bare ikke jeg forstår iden bag alt dette, men det er også mindre vigtigt, det kommer en dag... :)
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.