Avatar billede zubmit Nybegynder
26. maj 2003 - 23:33 Der er 5 kommentarer og
1 løsning

try sætninger

Jeg har ikke helt forstået hvad try sætninger gør. det betyder prøv men hvad har det at gøre med noget som helt?

//zubmit
Avatar billede fsconsult.dk Nybegynder
26. maj 2003 - 23:36 #1
try har med fejlhåndtering at gøre.

try {
  et-eller-andet-kode;
} catch (En-eller-anden-fejlkode fejl) {
  håndter-en-eller-anden-fejlkode;
}

Det kan være alt lige fra null pointer exceptions, eller andre runtime exceptions, til database exceptions, mail exceptions eller dine egne selvdefinerede exceptions..
Avatar billede jakoba Nybegynder
26. maj 2003 - 23:44 #2
i java når noget går galt (eg: et forsøg på at dividere med 0) bliver der 'kastet' en exception. det virker lidt ligesom en  break;  sætning. programudførelsen stoppper og programmet returnerer uda af ifsætning, af loops, af subroutiner, indtil det møder en  catch sætning der er beregnet på af 'gribe' den exception der blev 'kastet'

try sætningen er en måde at sige "Nu vil jeg prøve noget der måske går galt; i forbindelse med try vil der altid være en catch til at fange den exception der måske kommer:

try {
    denne kode vil måske kaste en exception
} catch( Exception e ) {
    denne kode skal rette op på tingene hvis en exception af typen "Exception" bliver kastet.
}

der kan evt være flere catch-led efter hinanden der hver fange sin slags Exception (en til division med 0, en til index out of bounds, etc)

mvh JakobA
Avatar billede jakoba Nybegynder
26. maj 2003 - 23:46 #3
PS: en exception der ikke bliver 'grebet' vil fortsætten med at returnere indtil hele programmet stopper med en fejlmelding.
Avatar billede zubmit Nybegynder
27. maj 2003 - 00:09 #4
Jeg forstod det ikke helt men kan i/du prøve at forklare det via dette eksempel?

void goURL( String url ) {
        try {
            URL urlen = new URL( url );
            getAppletContext().showDocument( urlen, "_blank" );
        }
        catch ( MalformedURLException evt ) {
            evt.printStackTrace();
        }
    }
Avatar billede jakoba Nybegynder
27. maj 2003 - 00:36 #5
OK:

din linie
            URL urlen = new URL( url );
kan gå galt hvis du ikke giver constructoren en lovlig internet url så vil der i den construdtor blive kastet ne exception af typen MalformedURLException og programmet returnerer tilbage til try-blokken, så til enden af try-blokken og der bliver den exception så fanget.
    enhver exceptiontype er faktisk en klasse og sen exception der kaster er så en instans af den klasse. Idet catch fanger den giver den den et navn (her 'evt')
    i det objekt likker der en metode printStackTrace der udskriver stakken som den så ud da den exception blev kastet.

Så alt hvad denne catch gør er altså at fortælle hvorhenne det gik galt.

mvh JakobA
Avatar billede zubmit Nybegynder
27. maj 2003 - 00:56 #6
Ok nu forstår jeg det ...
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
Kurser inden for grundlæggende programmering

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