q1:java-trycatch

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
q1:java-trycatch [2017/09/20 09:33] admin03q1:java-trycatch [2017/09/20 09:38] (aktuell) admin03
Zeile 44: Zeile 44:
  
 Hier wird eine Eingabe von der Konsole gelesen, als int gespeichert und ausgegeben. Das geht so lange gut, wie auch ein numerischer Wert eingegeben wird. Beim Auslesen von alphanumerischen Werten wird hingegen eine java.util.NumberFormatException ausgelöst, da ein solches Literal nicht in einen numerischen Wert gewandelt werden kann. Ginge man nun her und würde diesen Fall lediglich durch einen try-catch-Block absichern, so wären zwar Fehler abgesichert, ein sinnvoller Programmablauf selbst wäre jedoch nicht unbedingt gegeben, da die Applikation ohne Behandlung der Eingabe weiterlaufen würde. Die falsche Belegung der Variablen könnte im weiteren Verlauf u.U. zu schwerwiegenden Fehlfunktionen führen.  Hier wird eine Eingabe von der Konsole gelesen, als int gespeichert und ausgegeben. Das geht so lange gut, wie auch ein numerischer Wert eingegeben wird. Beim Auslesen von alphanumerischen Werten wird hingegen eine java.util.NumberFormatException ausgelöst, da ein solches Literal nicht in einen numerischen Wert gewandelt werden kann. Ginge man nun her und würde diesen Fall lediglich durch einen try-catch-Block absichern, so wären zwar Fehler abgesichert, ein sinnvoller Programmablauf selbst wäre jedoch nicht unbedingt gegeben, da die Applikation ohne Behandlung der Eingabe weiterlaufen würde. Die falsche Belegung der Variablen könnte im weiteren Verlauf u.U. zu schwerwiegenden Fehlfunktionen führen. 
 +
 +===== Mehrfache Catches =====
 +
 +Was kann noch so alles passieren?. Wenn wir eine Datei öffnen wollen, kann es z.B. sein, das sie gar nicht mehr exsistiert oder möglicherweise auch nicht lesbar, dann gibt es zwei unterschiedliche Exceptions die jeweis in der richtigen Reihenfolge bearbeitet werden müssen:
 +
 +<code JAVA>
 +import java.io.*;
 +
 +public class ReadGifSizeCatchingExceptions
 +{
 +  public static void main( String[] args )
 +  {
 +    try
 +    {
 +      RandomAccessFile f = new RandomAccessFile( "duke.gif", "r" );
 +      f.seek( 6 );
 +
 +      System.out.printf( "%s x %s Pixel%n", f.read() + f.read() * 256,
 +                         f.read() + f.read() * 256 );
 +      f.close();
 +    }
 +    catch ( FileNotFoundException e )
 +    {
 +      System.err.println( "Datei ist nicht vorhanden!" );
 +    }
 +    catch ( IOException e )
 +    {
 +
 +      System.err.println( "Allgemeiner Ein-/Ausgabefehler!" );
 +    }
 +  }
 +}
 +</code>
 +
 +===== Finally =====
 +
 +
 <code JAVA> <code JAVA>
 try  try 
  • /var/www/infowiki/data/attic/q1/java-trycatch.1505900020.txt.gz
  • Zuletzt geändert: 2017/09/20 09:33
  • von admin03