Wie finde ich Exceptions?

BlackSalad

Bekanntes Mitglied
Hey,

ich hab nen Code bekommen mit mehreren Exceptions und ich soll die rausfinden, verstehe aber nicht so wirklich wie.

Habt ihr ne Erklärung wie man an die Sache rangehen muss und wonach man schauen sollte?
 

jgh

Top Contributor
wenn die Exceptions nicht behandelt werden (try-und-catch-Blöcke), dann hast du auf der Standardausgabe, den Stacktrace der Exception stehen und kannst sehen welche Exception wann geschmissen worden sind.

Wenn sie innerhalb eines try/catch-Blockes behandelt werden, kannst du ja sehen, welche Exceptions ge"catched" werden, es empfiehlt sich auf die XYZ-Exception die printStackTrace() -Methode aufzurufen.

Java:
try{ //was auch immer
}catch (XYZException xyzE){
xyzE.printStackTrace();
}[/Java]
 

BlackSalad

Bekanntes Mitglied
Was meinst du damit? Rausinfinden was sie bedeuten oder wo sie herkommen?

sowohl als auch.

Wir hatten das Thema allerdings nur kurz angerissen und nun weiß ich gar nicht wie ich vor gehen soll.



Wenn ich nun zum Beispiel sowas habe:

Java:
class ExA extends RuntimeException {
private static final long serialVersionUID=1L;
}

class ExB extends ExA {
private static final long serialVersionUID = 2L ;
public ExB( int va ) throws ExA, ExC {
 }
 public ExB( String va ) throws ExA, ExC {
 throw Math.random() < 0.5? new ExB(Math.random() <0.5? 1:2):new ExA();
 }
 }
}

dann hab ich ja keinen try - catch Block.

Hier hab ich ja zum Beispiel einen:

Java:
public static void fa (int va ,int vb) throws ExC {
try {
System.out.println( " fa : 0. " ) ;
 if (va> vb) {
System.out.println( " f a : 1 . " ) ;
throw new ExB( " " ) ;
 } else {
System.out.println( " f a : 2 . " ) ;
 fb (Math.random() < 0.5 ? null:Math.random() < 0.5 ? " " : "ExA");
System.out.println( " f a : 3 . " ) ;
 }
 } catch(ExB ea ) {
System.out.println( " fa:E0−"+ea.getClass().getName()) ;
throw ea ;
} catch (ExA eb ) {
System.out.println("f a : E1 − "+eb.getClass().getName()) ;
throw eb ;
} catch (ExC ec ) {
 System.out.println("fa:E2−" +ec.getClass().getName()) ;
} finally{
System.out.println("fa:F") ;
 }
}

Beim ersten Fall ist mir jetzt unklar wie ich die Exceptions finde. Im 2. Fall habe ich ja den Try-catch Block. Aber dann müssten meine Exceptions doch ExC ec und ExA eb und ExB ea usw. sein oder?

Aber das sind doch keine richtigen Exceptions wie ich sie kenne? normal is noch Nullpointer Exception oder sowas.
 
T

Tomate_Salat

Gast
Von deinem geposteten Code bekommt man kopfweh. Bitte rücke vernünftig ein. Da oben blickt ja keiner mehr durch. Und wieso sollten das keine richtigen Exceptions sein?

Vllt liegts daran, dass ich noch keinen Mittag hatte, aber ich verstehe immernoch nicht wirklich, wo du Probleme hast.
 

BlackSalad

Bekanntes Mitglied
Hier nochmal den Code als ganzes und besser formatiert.

Java:
public class exceptional {
	
 
	public static void main ( String[] args) {
	 
 
		try {
	 
 
			System.out.println( "m: 0. " ) ;
 
			int va =Integer.parseInt(args[0]),vb =Integer.parseInt(args[1]);
 
			fa(va,vb ) ;

			System.out.println( "m: 1. " ) ;

		} catch (ExC ea) {
	
			System.out.println("m: E0 − "+ea.getClass().getName());

		} finally {

			System.out.println( "m: F" ) ;

		}
 
	}
 
	public static void fa (int va ,int vb) throws ExC {

		try {

			System.out.println( " fa : 0. " ) ;
 
			if (va> vb) {

				System.out.println( " f a : 1 . " ) ;

				throw new ExB( " " ) ;

			} else {

				System.out.println( " f a : 2 . " ) ;
 
				fb (Math.random() < 0.5 ? null:Math.random() < 0.5 ? " " : "ExA");

				System.out.println( " f a : 3 . " ) ;

			}
 
		} catch(ExB ea ) {

			System.out.println( " fa:E0−"+ea.getClass().getName()) ;

			throw ea ;

		} catch (ExA eb ) {

			System.out.println("f a : E1 − "+eb.getClass().getName()) ;

			throw eb ;

		} catch (ExC ec ) {
 
			System.out.println("fa:E2−" +ec.getClass().getName()) ;

		} finally{

			System.out.println("fa:F") ;
 
		}

	}

	public static void fb (String va) throws ExA, ExC {

		try {

			System.out.println("fb:0.");

			if (va.length() > 0){

				System.out.println("fb:1.");

				throw new ExC();

			} else {

				System.out.println("fb:2.");

				fa((int)(100*Math.random())  ,(int)(100*Math.random())); 

				System.out.println("fb:3.");

			}

		} finally{

			System.out.println("fb : F" );

		}

	}

}

class ExA extends RuntimeException {

	private static final long serialVersionUID=1L;

}


class ExB extends ExA {

	private static final long serialVersionUID = 2L ;

	public ExB( int va ) throws ExA, ExC {
 
	}
 
	public ExB( String va ) throws ExA, ExC {
 
		throw Math.random() < 0.5? new ExB(Math.random() <0.5? 1:2):new ExA();
 
	}
 
}


class ExC extends Throwable {

	private static final long serialVersionUID =3L;
 
}

also sind das tatsächlich richtige Exceptions. Okay, das ist schonmal gut zu wissen.

Und wie finde ich Exceptions, die nicht durch nen Try-catch-Block abgefangen werden?



und wie kann ich rausfinden, was diese Exceptions auslöst?
 

Shulyn

Bekanntes Mitglied
Java:
throw Math.random() < 0.5? new ExB(Math.random() <0.5? 1:2):new ExA();

Wenn du eine Exception wirfst (throw) dann "fliegt" sie so lange nach oben durch deine Methoden bis sie in einem Catch Block landet, oder in der Main landet. Im fall das sie nicht gefangen wird...

In deinem konkreten fall :

Java:
throw Math.random() < 0.5? new ExB(Math.random() <0.5? 1:2):new ExA();

// ist gleich 

if(Math.random() < 0.5) {
  if( Math.random() <0.5 ) {
     throw new ExB(1);
  }
  else {
      throw new ExB(2);
  }
}
else {
    throw new ExA();
}

und wie kann ich rausfinden, was diese Exceptions auslöst?
[Java]

try { deine code }

catch (Exception e) {
e.printStackTrace(); // Zeigt dir ganz genau wo etwas passiert ist...
}

[/Java]
 
Zuletzt bearbeitet:

fastjack

Top Contributor
Pass aber auf, ExA und ExB sind RuntimeExceptions, das heißt müssen nicht abgefangen werden, plumpsen also auch locker mal durch, wenn Du nicht extra ein try/catch anlegst. ExC wiederum ist ein Throwable, das mußt Du bei der Programmierung abfangen. Ansonsten sieht das alles ein wenig verwirrend aus... Wieso gibt es den Mix und warum werden an allen Ecken und Enden Exception geworfen?
 

Nicer

Bekanntes Mitglied
Also "Exception" bedeutet "Ausnahme". D.h. es passiert etwas , was eigentlich nicht Passieren sollte. Zum Beispiel findet der FileReader die zu lesende Datei nicht. Deshalb wirft ( Mnemonic : throws ) die FileReader klasse die FileNotFound exception. Diese fängt ( Mnemonic : catch ) man dann üblicherweise um den Fehler zu Verarbeiten.
 

BlackSalad

Bekanntes Mitglied
soweit ist mir das ja klar.

Also so allgemein, dass Exceptions ausnahmen sind die nen Fehler hervorrufen.

Aber ich weiß nicht im speziellen bei was exceptions passieren können.

Kann das auch passieren wenn da steht:

System.out.println (x)

und x wurde nie benutzt?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
berserkerdq2 Wo finde ich in der Java Api die Notation zu Threads bezüglich Synchronized? Java Basics - Anfänger-Themen 14
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
B ArrayIndexOutOfBoundsException, ich finde den Fehler nicht? Java Basics - Anfänger-Themen 10
A Kalender programmieren, ich finde meinen Fehler nicht. Java Basics - Anfänger-Themen 9
Z Montageberechnungs programm, finde leider den Fehler nicht Java Basics - Anfänger-Themen 13
S Finde den fehler nicht Java Basics - Anfänger-Themen 1
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
M Methoden Fehler und finde die Lösung nicht wirklich Java Basics - Anfänger-Themen 6
T Input/Output Leerzeilen in Ausgabe -> finde den Fehler nicht Java Basics - Anfänger-Themen 10
Z Finde den Fehler nicht ! Java Basics - Anfänger-Themen 3
X Finde die Files über FTP nicht Java Basics - Anfänger-Themen 4
T Wie finde ich passende Java Klassen & Methoden? Java Basics - Anfänger-Themen 4
S Compiler-Fehler Finde den Fehler nicht... Java Basics - Anfänger-Themen 4
L Methoden Finde Secquenz ineinem array Java Basics - Anfänger-Themen 12
S Compiler-Fehler error: ';' expected (finde Fehler nicht) Java Basics - Anfänger-Themen 10
O Verriegeln, aber wo? Finde den Client der zu schließem ist. Java Basics - Anfänger-Themen 0
D Code Fehlerhaft finde den Fehler nicht. Java Basics - Anfänger-Themen 1
R Finde den Fehler nicht Java Basics - Anfänger-Themen 4
A finde fehler nicht Java Basics - Anfänger-Themen 9
X StackOverflowError, finde den Fehler nicht Java Basics - Anfänger-Themen 5
M Methoden Fehler in Methode - Finde ihn nicht Java Basics - Anfänger-Themen 7
P Benötige Hilfe - finde Fehler nicht. Java Basics - Anfänger-Themen 3
J "ArrayIndexOutOfBoundsException", finde den Fehler schlicht nicht Java Basics - Anfänger-Themen 6
D Wo finde ich die OpenSource-Sources? Java Basics - Anfänger-Themen 5
V finde meinen Fehler nicht Java Basics - Anfänger-Themen 10
B Finde BUG nicht... Java Basics - Anfänger-Themen 8
L StackOverFlow, finde Grund nicht! Java Basics - Anfänger-Themen 5
M Ganz einfaches Beispiel, finde den Fehler aber nicht :( Java Basics - Anfänger-Themen 2
Z Problem mit Tutorial - Finde Kon.java nicht Java Basics - Anfänger-Themen 11
J Finde Fehler bei kleinem Programm nicht Java Basics - Anfänger-Themen 3
V Ganz kurze Java-Hilfe - Ich finde meinen Fehler nicht Java Basics - Anfänger-Themen 4
S Out of bounds exception. Finde den fehler nicht Java Basics - Anfänger-Themen 13
U finde fehler nicht! bitte um hilfe Java Basics - Anfänger-Themen 8
C ich finde den fehler nicht Java Basics - Anfänger-Themen 4
J Finde die Fehler nicht Java Basics - Anfänger-Themen 2
L Illegal Start of Type, wie finde ich den fehler Java Basics - Anfänger-Themen 4
M Finde Fehler nicht: NotSerializableException Java Basics - Anfänger-Themen 2
F Finde den Fehler nicht Java Basics - Anfänger-Themen 4
J class, interface, or enum expected - finde Fehler nicht. Java Basics - Anfänger-Themen 4
E Finde Error nciht Java Basics - Anfänger-Themen 3
U Finde den fehler nicht Java Basics - Anfänger-Themen 9
J Kann den fehler nicht finde!!! Java Basics - Anfänger-Themen 7
B Calculator Fehlermeldung ich finde aber nichts? Java Basics - Anfänger-Themen 2
S Finde den Fehler nicht/ verstehe Anweisung nicht Java Basics - Anfänger-Themen 12
S Finde den Fehler nicht ! Java Basics - Anfänger-Themen 8
K class Enum Methode: values() - finde ich nicht in der API Java Basics - Anfänger-Themen 2
W Java Anfänger... Finde fehler nicht Java Basics - Anfänger-Themen 11
B Java programm mit Arrays. finde den Fehler nicht Java Basics - Anfänger-Themen 3
U Finde den fehler nicht Java Basics - Anfänger-Themen 10
U Finde den fehler nicht Java Basics - Anfänger-Themen 6
C Finde meinen Fehler nicht Java Basics - Anfänger-Themen 6
A Finde javax.servlet.* nicht Java Basics - Anfänger-Themen 6
F Finde fehler nicht Java Basics - Anfänger-Themen 5
N finde die fehler nicht Java Basics - Anfänger-Themen 9
G Bild wird nicht neu gezeichnet - finde den Fehler nicht Java Basics - Anfänger-Themen 3
G wie finde ich workspace programmatisch? Java Basics - Anfänger-Themen 13
G Wie finde ich das Verzeichnis von meinen Java Projekt? Java Basics - Anfänger-Themen 7
S Finde den Fehler nicht Java Basics - Anfänger-Themen 13
H Finde Position Java Basics - Anfänger-Themen 4
J wo finde ich javah Java Basics - Anfänger-Themen 16
B wo finde ich diese Dateien? Java Basics - Anfänger-Themen 6
B Wo finde ich die Klasse javax.sound.sampled.AudioSystem Java Basics - Anfänger-Themen 7
G wie finde ich den pfad meines programms raus? Java Basics - Anfänger-Themen 2
T ArrayIndexOutOfBoundsException finde den Auslöser nicht Java Basics - Anfänger-Themen 5
O problem mit document listener finde den fehler nicht Java Basics - Anfänger-Themen 2
O arrayindexoutofbounds finde den fehler nicht Java Basics - Anfänger-Themen 6
B Finde das Problem nicht! Java Basics - Anfänger-Themen 2
R Finde meinen Fehler nicht! - Namen von Personen vergleichen Java Basics - Anfänger-Themen 6
M Finde den Fehler nicht Java Basics - Anfänger-Themen 3
B Finde Methode einer Klasse nicht Java Basics - Anfänger-Themen 4
N Finde Fehler nicht! Help plz! Java Basics - Anfänger-Themen 3
F Kleiner Fehler, den ich aber leider nicht finde. Java Basics - Anfänger-Themen 4
F Erste Schritte in Java - Wo finde ich Antworten? Referenzbib Java Basics - Anfänger-Themen 3
B Wo finde ich eine Übersicht aller Methoden? Java Basics - Anfänger-Themen 2
J wo finde ich die methode addactionlistener in der api ? Java Basics - Anfänger-Themen 5
M Test auf Exceptions schreiben Java Basics - Anfänger-Themen 11
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
C Exceptions identifizieren Java Basics - Anfänger-Themen 5
A Exceptions mit objektreferenzen Java Basics - Anfänger-Themen 4
A Exceptions und methods Java Basics - Anfänger-Themen 2
A Cannot find symbol bei exceptions Java Basics - Anfänger-Themen 2
A Exceptions und Packages Java Basics - Anfänger-Themen 6
B JUnit / Exceptions/ try-catch Java Basics - Anfänger-Themen 6
X Exceptions Benutzereingaben Java Basics - Anfänger-Themen 4
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
L Exceptions und Konten Java Basics - Anfänger-Themen 21
D Frage zu Exceptions Java Basics - Anfänger-Themen 8
I Wie programmiert man Exceptions? Java Basics - Anfänger-Themen 4
N Unterschied zwischen Checked und Unchecked Exceptions Java Basics - Anfänger-Themen 12
C Erste Schritte Exceptions nicht verstanden Java Basics - Anfänger-Themen 2
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
T Exceptions - ausgeführte Zeilen Java Basics - Anfänger-Themen 4
J Exceptions Java Basics - Anfänger-Themen 69
C Exceptions Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben