Video: Hour of Code - Bill Gates explains If statements 2025
En prøveopgave bruges til at fange undtagelser, der kan kastes som dit program udføres. Du skal bruge en prøveopgørelse, når du bruger en erklæring, der kan give en undtagelse. På den måde vil dit program ikke kollidere, hvis undtagelsen forekommer.
Forsøgserklæringen har denne generelle form:
Prøv { udsagn, der kan kaste undtagelser } fangst ( undtagelsestypeidentifikator ) { udsagn udført, når undtagelsen er kastet } endelig { udsagn, der udføres, uanset om undtagelser forekommer
De udsagn, der kan give en undtagelse i en prøveblok. Så fanger du undtagelsen med en fangstblok. Den endelige blok er brugt til at give udsagn, der udføres uanset om der forekommer undtagelser.
Her er et simpelt eksempel:
int a = 5; int b = 0; // du ved, dette vil ikke fungere prøve {int c = a / b; // men du prøver det alligevel} fange (ArithmeticException e) {System. ud. println ("Kan ikke gøre det!");}
I det foregående eksempel kastes en del-for-nul-undtagelse, når programmet forsøger at opdele en ved b. Denne undtagelse er opsnappet af fangstblokken, som viser en fejlmeddelelse på konsollen.
Her er et par ting at bemærke om forsøgsudsagn:
-
Du kan kode mere end en fangstblok. På den måde, hvis udsagnene i prøveblokken måske kaster mere end en form for undtagelse, kan du fange hver type undtagelse i en separat fangstblok.
I Java 7 kan du fange mere end en undtagelse i en enkelt fangstblok. Undtagelserne adskilles med lodrette stænger, som denne:
prøv {// udsagn, der kan kaste // FileNotFoundException // eller IOException} fange (FileNotFoundException | IOException e) {System. ud. println (e. getMessage ());}
-
En prøveblok er dens egen selvstændige blok, adskilt fra fangstblokken. Som følge heraf er eventuelle variable, du erklærer i prøveblokken, ikke synlige for fangstblokken. Hvis du vil have dem til at være, skal du deklarere dem straks før prøveopgørelsen.
-
De forskellige undtagelsestyper defineres som klasser i forskellige pakker i Java API. Hvis du bruger en undtagelsesklasse, der ikke er defineret i standard java. lang-pakke, der altid er tilgængelig, skal du angive en importopgørelse for pakken, der definerer undtagelsesklassen. For eksempel:
importer java. io. *;
-
Hvis du vil ignorere undtagelsen, kan du fange undtagelsen i fangstblokken, der indeholder ingen udsagn, som sådan:
prøv {// Statements, der kan kaste // FileNotFoundException} catch (FileNotFoundException e) {}
Denne teknik kaldes "synke undtagelsen" og betragtes som en farlig programmeringspraksis, fordi programfejl kan blive uopdaget.