Exception Handling in der ActionPerformed-Methode

Status
Nicht offen für weitere Antworten.

belimo

Mitglied
Hallo Leute

Ich habe folgenden Code:
Code:
	public void paint(Graphics g) {
			g.drawString("inta: " + inta, 50, 70);
			g.drawString("intb: " + intb, 50, 90);
			g.drawString("intc: " + intc, 50, 110);
		try {
			g.drawString("Das Resultat ist: " + berechne(inta, intb, intc), 50, 50);
		} catch (NumberFormatException e3) {
			g.drawString("" + e3.getMessage(), 50, 50);
		}catch (IllegalArgumentException e1) {
			g.drawString("Fehlermeldung: " + e1.getMessage(), 50, 50);
		} catch (Exception e2) {
			g.drawString("Argumente nicht erlaubt: " + e2.getMessage(), 50, 50);
		}
	}
	
	public void actionPerformed(ActionEvent myEvent) throws NumberFormatException {
		
		
			if (myEvent.getSource() == a) {

			}
			if (myEvent.getSource() == b) {
				
			}
			if (myEvent.getSource() == c) {

			}
			if (myEvent.getSource() == senden) {	
			
		                        inta = Integer.parseInt(a.getText());
					intb = Integer.parseInt(b.getText());
					intc = Integer.parseInt(c.getText());
					repaint();
					
			}	
	}
	
	public double berechne(double a, double b, double c) {
	 	return Math.sqrt((a + b + c)*(a + b - c)*(b + c - a)*(c + a - b)) / 4;	
	}

Kurz: Ein Applet, wo ich die Fläche eines Dreiecks unter Angabe aller drei Seitenlängen berechne. Nun habe ich im actionPerformed ja die Methode parseInt, welche wenn statt einer Zahl ein Text übergeben wird eine NumberFormatException wirft. Soweit so gut.

Mein Problem ist nun: Wie fange ich das genau ab? Ich könnte um diesem Block:
Code:
					inta = Integer.parseInt(a.getText());
					intb = Integer.parseInt(b.getText());
					intc = Integer.parseInt(c.getText());
					repaint();
mit try und catch arbeiten, aber im catch kann ich ja gar keine Fehlermeldung ausgeben. Das geht ja nur im Paint. Hoffe ihr versteht was ich meine ;-)

Danke schonmal für eure Hilfe.
 

Wildcard

Top Contributor
Ganz böse.
In paint wird gezeichnet, nicht gerechnet.
paint bildet nur den Ist-Zustand ab, die Berechnung muss schon vorher passiert sein.
 

belimo

Mitglied
Na gut :D Ich habs mal angepasst:

Code:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class praktikum72 extends Applet implements ActionListener {
	
	private TextField a = null, b = null, c = null;
	private Button senden;
	private int inta, intb, intc;
	private double result;
	
	public void init() {
				
		 a = new TextField("0", 6);
		 b = new TextField("0", 6);
		 c = new TextField("0", 6);
		 
		 senden = new Button("Sende zum Berechnen!");
		 
		 add(a); add(b); add(c); add(senden);
		 
		 a.addActionListener(this);
		 b.addActionListener(this);
		 c.addActionListener(this);
		 senden.addActionListener(this);
		
	}

	public void paint(Graphics g) {
			g.drawString("inta: " + inta, 50, 70);
			g.drawString("intb: " + intb, 50, 90);
			g.drawString("intc: " + intc, 50, 110);
		try {
			g.drawString("Das Resultat ist: " + result, 50, 50);
		} catch (NumberFormatException e3) {
			g.drawString("Sie haben keine Zahl eingegeben!", 50, 50);
		}catch (IllegalArgumentException e1) {
			g.drawString("Fehlermeldung: " + e1.getMessage(), 50, 50);
		} catch (Exception e2) {
			g.drawString("Argumente nicht erlaubt: " + e2.getMessage(), 50, 50);
		}
	}
	
	public void actionPerformed(ActionEvent myEvent) throws NumberFormatException {
			if (myEvent.getSource() == senden) {	
					inta = Integer.parseInt(a.getText());
					intb = Integer.parseInt(b.getText());
					intc = Integer.parseInt(c.getText());
					result = berechne(inta, intb, intc);
					repaint();		
			}	
	}
	
	public double berechne(double a, double b, double c) {
	 	return Math.sqrt((a + b + c)*(a + b - c)*(b + c - a)*(c + a - b)) / 4;	
	}
	
}

Aber mein Problem bleibt: Wie fange ich denn die NumberFormatException ab? Die hat ja im Prinzip nichts zu tun mit der berechnen-Methode, sondern mit der parseInt. Ich bin absoluter Anfänger in Exception, wir hatten erst grade die Vorlesung ;-) Daher bin ich dankbar um jeden noch so banal erscheinenden Tip.
 

Leroy42

Top Contributor
Das Abfangen der Exception ist einfach; die Frage
ist, was du bei einer Exception machen willst?

Beispiel
Code:
try {
  inta = Integer.parseInt(a.getText()); 
  intb = Integer.parseInt(b.getText()); 
  intc = Integer.parseInt(c.getText());  
  result = berechne(inta, intb, intc); 
  repaint();      
} catch (NumberFormatException e) {
  JOptionPane.showMessageDialog(null, "Fehler", e.toString(), JOptionPane.ERROR_MESSAGE);
}
 

belimo

Mitglied
Dankeschön.

Das Abfangen wäre jetzt also geklärt. Ich möchte nun beim Fehler eine Fehlermeldung ausgeben (aber über die Paintmethode.)

Statt wie bei dir: "JOptionPane.showMessageDialog(null, "Fehler", e.toString(), JOptionPane.ERROR_MESSAGE);" soll im Paint das hier stehen: "g.drawString("Sie haben keine Zahl eingegeben!", 50, 50);"

Aber im ActionPerformed kann ich ja mit drawString nichts ausgeben ;-) Ich könnte höchstens im von dir geposteten catch eine Fehlermeldung in eine String-Variable schreiben und diese im Paint dann ausgeben. Aber ist das sauber? Wie machen das denn die Profis?
 

Leroy42

Top Contributor
Code:
public class praktikum72 extends Applet implements ActionListener { 
  private errorString;
  ...
   public void paint(Graphics g) { 
      if (errorString != null)
        g.drawString(errorString, 50, 70);
      else {
         g.drawString("inta: " + inta, 50, 70); 
         g.drawString("intb: " + intb, 50, 90); 
         g.drawString("intc: " + intc, 50, 110); 
         g.drawString("Das Resultat ist: " + result, 50, 50); 
      } 
   } 
    
   public void actionPerformed(ActionEvent myEvent) throws NumberFormatException { 
         if (myEvent.getSource() == senden) {    
               errorString = null;
               try {
                 inta = Integer.parseInt(a.getText()); 
                 intb = Integer.parseInt(b.getText()); 
                 intc = Integer.parseInt(c.getText()); 
                 result = berechne(inta, intb, intc); 
               } catch (NumberFormatException e) {
                 errorString = "Sie haben keine Zahl eingegeben: " + e.toString();
               }
                 repaint();       
         }    
   }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
M Exception Handling Java Basics - Anfänger-Themen 2
G Frage zu Exception-Handling Java Basics - Anfänger-Themen 5
X JFrame als JAR unsichtbar trotz Exception Handling Java Basics - Anfänger-Themen 5
S Schlechter Stil beim Exception Handling Java Basics - Anfänger-Themen 6
S Exception-Handling in main-Funktion? Java Basics - Anfänger-Themen 6
S Exception Handling Java Basics - Anfänger-Themen 4
M Frage zu Exception Handling Java Basics - Anfänger-Themen 10
D Exception Handling Java Basics - Anfänger-Themen 3
D OOP Exception Handling - NullPointerException Java Basics - Anfänger-Themen 17
M Exception handling Java Basics - Anfänger-Themen 5
T Exception-Handling beim Lesen einer XML-Datei mit XMLDecoder Java Basics - Anfänger-Themen 4
G Exception-Handling Java Basics - Anfänger-Themen 6
T Exception Handling? Java Basics - Anfänger-Themen 6
A Exception Handling Fragen Java Basics - Anfänger-Themen 2
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Exception Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
J Exception unreachable Java Basics - Anfänger-Themen 12
O unchecked Exception Java Basics - Anfänger-Themen 4
P Exception werfen Java Basics - Anfänger-Themen 15
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
S Exception bei Verwendung von LocalDate Java Basics - Anfänger-Themen 19
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
D Warum die Nullpointer Exception Java Basics - Anfänger-Themen 6
O Exception behandlung einfach Ueben mit Fakt! Java Basics - Anfänger-Themen 10
I OOP Was ist die "Exception Hierarchie" ? Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
Mosquera Exception Java Basics - Anfänger-Themen 5
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
N Nullpointer exception Java Basics - Anfänger-Themen 4
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
S Array Grenzen-Exception Java Basics - Anfänger-Themen 11
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
G Arrays out of Bounds exception Java Basics - Anfänger-Themen 2
H Compiler-Fehler Out of Bunce Exception bei einem Char Java Basics - Anfänger-Themen 6
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
C Null Pointer Exception Java Basics - Anfänger-Themen 10
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
G Null Pointer Exception Java Basics - Anfänger-Themen 4
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
O Exception bei Parse-Vorgang Java Basics - Anfänger-Themen 17
T Exception Problem Java Basics - Anfänger-Themen 5
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
W Nullpointer Exception bei .add(...) Java Basics - Anfänger-Themen 6
L Input/Output InputMismatch.Exception Java Basics - Anfänger-Themen 7
B Exception Liste von Liste Java Basics - Anfänger-Themen 3
D Throw Exception Java Basics - Anfänger-Themen 2
MiMa JavaDoc Exception @throws schlagen an Java Basics - Anfänger-Themen 4
J Exception in thread "main" Java Basics - Anfänger-Themen 1
B Exception richtig einbinden Java Basics - Anfänger-Themen 1
M Exception soll Werte mitgeliefert bekommen Java Basics - Anfänger-Themen 12
M Selbstdefinierte Exception Java Basics - Anfänger-Themen 5
B Exception Throwable Java Basics - Anfänger-Themen 11
M Erste Schritte Start Methode - Exception Java Basics - Anfänger-Themen 1
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
F nullpointer exception - arrayerstellung Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben