ExceptionHandling mit bescheidenem Quellcode

11. Was versteht man unter einer Exception und wozu verwendet man sie? Verändern Sie
das folgende Programm so, dass ein möglicher Fehler abgefangen wird.

import static Prog1Tools.IOTools.*;
public class KlausurExc1 {
public static void main(String[] args) {
int i,z;
double a[] = new double[6];
for (i=1;i<=4;i++ ) {
z = readInteger("Zahl= ");
a[z] = z*z+1.5;
System.out.println(a[z]);
}
}
}

Meiner Meinung nach ist das Programm, abgesehen von ungehandelten Exceptions, gar nicht lauffähig, da z = readInteger("Zahl= "); (int=String) so doch gar nicht funktionieren kann oder? Ausserdem gibt es das Package das importiert wird doch gar nicht?
 

Gucky

Top Contributor
Und ob das funktioniert. readInteger() ließt ab einem String eine Zahl und gibt diese als int zurück.

Eine Exception ist eine Ausnahme. Sie wird "geworfen", wenn etwas passiert, was nicht vorgesehen war. Damit wird sofort aus dem entsprechenden Programmteil herausgesprungen und die Exception wird so lange weitergereicht, bis keine entsprechende throws Anweisung mehr in der Methode mehr steht und sie entweder abgefangen wird oder, bei RuntimeExceptions, auch nicht unbedingt abgefangen wird.
Allerdings antworte ich dir zu dem Thema nur, weil ich gerade gute Laune habe. Bei Google steht mehr in besserer Qualität schneller verfügbar. ;)

Packages können auch selber erstellt werden. In größeren Projekten ist das Gang und Gäbe.

Wie man das Programm umschreibt müsstest du zuerst selber versuchen. Dann kannst du Fragen stellen.

Java Code bitte in Java Tags.
 
Danke für die Antwort erstmal. Aber hier ist kein Scanner oder sonstiges definiert und Eclipse macht mir auch Ärger bei der readInteger Methode. Und dass man da n paar Exceptions abfangen muss seh ich ja.
 
Ich hätte gesagt so hier:

Java:
import static Prog1Tools.IOTools.*;
public class KlausurExc1 {
public static void main(String[] args) {
int i,z;
double a[] = new double[6];
try{
for (i=1;i<=4;i++ ) {
z = readInteger("Zahl= ");
a[z] = z*z+1.5;
System.out.println(a[z]);}
catch(Exception e){e.printStackTrace();}
}
}
}
 

Gucky

Top Contributor
Botte formatiere (Einrückung) deinen Code entsprechend den Konventionen, um ihn lesbar zu machen.

Dann nimmt dein Programm den Code kommentarlos hin und beendet sich. Das ist nicht der Sinn von ExceptionHandling.

Dann habe ich auch noch eine Frage: wie seht ihr das? Sollte der Teil im try Block so kurz, wie möglich sein oder eher nicht?
 

Saheeda

Top Contributor
@Gucky
Mir wurde beigebracht, dass der try-Teil so kurz sein sollte, wie möglich, weil:
a) könnte man sonst übertrieben gesagt den kompletten Code dort rein packen
b) ķönnten mir theoretisch mehrere verschiedene Exceptions fliegen (mit verschiedenen Ursachen), die mir aber so durch die Lappen gehen. Somit könnte der Code total verbuggt sein, ohne dass ichs merke.
 

Gucky

Top Contributor
Mit dem Hinweis, die Ausführung sei fehlgeschlagen, aufgrund einer falschen Eingabe.

Das lässt sich relativ leicht mit einem Flag lösen. Am Anfang der Schleife wird ein boolean, welches außerhalb der Schleife deklariert wurde, auf false gestellt und wenn eine Exception fliegt, wird es auf true gestellt.
 

arilou

Bekanntes Mitglied
Mir wurde beigebracht, dass der try-Teil so kurz sein sollte, wie möglich, weil: [...]
Außerdem ist ein "sinnvolles Abfangen" eigentlich nur nah an dem "Ort" möglich, der die Exception verursachte.
Je weiter "außen" man abfängt, desto unspezifischer muss die Problembehandlung zwingenderweise werden - und desto weniger Sinn hat das dann meistens.
 

VfL_Freak

Top Contributor
Moin,

so, hier erstmal 'ne lesbare Form (sonst kriegt man ja Augenkrebs ...)
Java:
    import static Prog1Tools.IOTools.*;
    
    public class KlausurExc1 
    {
        public static void main( String[] args )
        {
            int i,z;
            double a[] = new double[6];
            try
            {
                for( i=1; i<=4; i++ ) 
                {
                    z = readInteger( "Zahl= " );
                    a[z] = z*z + 1.5;
                    System.out.println( a[z] );
                }
                catch( Exception e )
                {
                    e.printStackTrace();
                }
            }
        }
    }

gruß
Klaus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
lougoldi ExceptionHandling mit Optional<> Allgemeine Java-Themen 9
2 Exceptionhandling Allgemeine Java-Themen 6
Final_Striker Exceptionhandling: Richtige Verwendung des Try/Catch Blocks Allgemeine Java-Themen 14
S Verwendet Programmiersprache aus Quellcode - Datei ermitteln Allgemeine Java-Themen 6
C Quellcode-Übersetzung englisch zu deutsch Allgemeine Java-Themen 9
D Suche Quellcode! Allgemeine Java-Themen 8
B Quellcode einer Java libary finden um zu copy & paste'n Allgemeine Java-Themen 5
G Quellcode wiederherstellen Allgemeine Java-Themen 28
B Quellcode lesen - Aussortieren Allgemeine Java-Themen 3
M Quellcode von Java-Methoden Allgemeine Java-Themen 9
U Swing Hilfe beim Quellcode für ein Codierungs-/Decodierungsprogramm Allgemeine Java-Themen 9
G Externer Quellcode Allgemeine Java-Themen 3
L Methoden "Schiffe versenken" Quellcode in Methoden umwandeln Allgemeine Java-Themen 6
T Android Webview Webpage Quellcode to string Allgemeine Java-Themen 0
B Quellcode für Zwischenprüfung Allgemeine Java-Themen 4
M Aus Javaprogramm .NET Quellcode kompileren Allgemeine Java-Themen 2
J XML Dokument Zeilenumbruch in den Quellcode einfügen Allgemeine Java-Themen 5
I Methoden Quellcode auslesen (Refelction o.ä.) Allgemeine Java-Themen 5
H Zeilenumbruch in Quellcode Allgemeine Java-Themen 4
G Eingegeben Formeln in Quellcode einbetten?! Allgemeine Java-Themen 4
E Compiler-Fehler wie muss ich die entstandene Quellcode kompilieren?? Allgemeine Java-Themen 2
T Api in Quellcode laden Allgemeine Java-Themen 8
L Java Quellcode auf Windows 7 ausführen? Allgemeine Java-Themen 3
S jsr in Quellcode Allgemeine Java-Themen 4
M R250 Quellcode Allgemeine Java-Themen 2
J Quellcode aus .jar auslesen? Allgemeine Java-Themen 3
M JLapack Quellcode beifügen? Allgemeine Java-Themen 4
P Probleme mit wikipedia quellcode zur binären Suche Allgemeine Java-Themen 6
X Quellcode von nativen Funktionen Allgemeine Java-Themen 2
D Übersetzen von Quellcode Allgemeine Java-Themen 11
N Java Quellcode zu Syntaxbaum Allgemeine Java-Themen 3
M Wie in Eclipse Quellcode incl. Zeilennummern kopieren? Allgemeine Java-Themen 6
G SourceForge - Quellcode Allgemeine Java-Themen 15
V Quellcode auf "Güte" testen? Allgemeine Java-Themen 5
C Java Quellcode parsen Allgemeine Java-Themen 8
M Quellcode DriverManager Allgemeine Java-Themen 2
C Fehler im Quellcode. Suche in einem Baum Allgemeine Java-Themen 3
G Problem mit Quellcode, Eingabe wird nicht angezeigt --HELP-- Allgemeine Java-Themen 2
T Problem mit Quellcode Allgemeine Java-Themen 2
D Was haltet ihr von meinem Quellcode - JConsole? Allgemeine Java-Themen 2
Lazybone Java Quellcode sichern Allgemeine Java-Themen 9
P Fehler im Quellcode Allgemeine Java-Themen 8
J Viel Text mit " im Quellcode abspeichern Allgemeine Java-Themen 7
R Copyright-Notiz am Anfang jeder Quellcode-Datei? Allgemeine Java-Themen 5
R Problem mit Quellcode Allgemeine Java-Themen 2
M Events im Quellcode auslösen Allgemeine Java-Themen 4
J Java Quellcode Aufbereitung für Dokumentation Allgemeine Java-Themen 11
padde479 Organisation von Quellcode Allgemeine Java-Themen 6
F Quellcode von Java ansehen Allgemeine Java-Themen 4
S In einem HTML Quellcode gewünschten Abschnitt in Datei Save Allgemeine Java-Themen 9
R Java Quellcode zu exe Datei unsw. Allgemeine Java-Themen 5
G Quellcode inkludieren Allgemeine Java-Themen 3
J Quellcode aus JAVA Programmen Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben