Exceptions

In het applet die gehele getallen omzet naar Romeinse cijfers moet de invoer uit cijfers bestaan. Wanneer de gebruiker van het applet bijvoorbeeld vijftien in plaats van 15 zal dat tot een foutmelding leiden. Hetzelfde gebeurt als de gebruiker niets intypt. De programmeur moet dit soort fouten van de gebruiker afvangen. In Java worden deze fouten exceptions genoemd. We bekijken het volgende programmacode:

try {
   double inkomsten = Double.parseDouble(inkomstenVeld.getText());
   double uitgaven = Double.parseDouble(uitgavenVeld.getText());
   saldoVeld.setText(String.valueOf(inkomsten-uitgaven));
}
catch (NumberFormatException e) {
   foutmeldingLabel.setText("Ongeldige invoer");
}


De gebruiker moet in het inkomstenveld en het uitgavenveld zijn inkomsten en uitgaven intypen. Het programma berekent vervolgens het saldo. Wanneer de gebruiker echter geen getal intypt dan gaat het mis, want de methode valueOf() kan de string niet omzetten naar een getal. Om dit op te lossen wordt hier een statement gebruikt dat de fouten afvangt. De vorm van dit statemant zie je op de volgende pagina.

try {
   een serie statements
}
catch (eenException e) {
   afhandeling van de exception
}

In het try-blok worden de statements uitgevoerd. Wanneer er geen exception optreedt, dan wordt het catch-blok genegeerd. Als er wel een exception optreedt, dan kunnen we specificeren dat het catch-blok moet worden uitgevoerd door de klasse van exception aan te geven die we willen opvangen: NumberFormatException. (In de API Reference staat aangegeven dat bij een exception de methode parseDouble() van de klasse Double een component van de klasse NumberFormatException produceert.) Als er een ander soort exception optreedt, wordt de catch niet uitgevoerd.