S.k. Exceptions, undantag, kastas ifall någonting går fel i koden. T.ex. kan det vara att man försöker konvertera en sträng till siffror, fylla en plats i en array där platsen inte finns (överskrider index), m.m. m.m. Undantag används mycket inom Java-programmeringen och det finns massvis av olika Exception-klasser. Om du inte då fångar dina undantag och rättar till dem, kan det således bli fel i programmet och det kan i vissa fall dö helt. Try-catch-block är därför en smidig lösning för att få en bättre kontroll över programflödet.
Det är inte så himla svårt egentligen... Man binder in koden som kan kasta undantag inuti try-blocket, och om det kastas ett undantag hanteras det i catch-blocket.
Som exempel kan vi använda ett Array-exempel, där ett ArrayIndexOutOfBoundsException kastas.
public class Test {
public static void main( String[] argv ) {
String[] sArr = new String[10];
try {
sArr[9] = "Wee!";
sArr[10] = "Det här kommer inte funka, index 10 finns ju inte!";
} catch( ArrayIndexOutOfBoundsException e ) {
System.out.println( "Nu kastades ett Exception!" );
}
}
}
När vi försöker fylla index 10 med data, kommer ett undantag att kastas, eftersom att index 10 inte finns - det finns bara 10 platser i arrayen och index 9 är den sista platsen (Arrayer börjar alltid på 0 i Java, således finns bara platserna 0-9). Det fångas sedan i catch-blocket och vi skriver ut vad som händer på skärmen.
finally-block används tillsammans med try-catch, och innebär att vad som än händer så ska koden i finally-blocket exekveras.
Fotnot, ArrayIndexOutOfBoundsException är av typen RuntimeException, vilket innebär att programmet dör om undantaget inte fångas!

