# Exception bei leerem Textfeld



## Guest (28. Nov 2008)

hallo,
ich habe folgendes problem:
ich habe in meiner gui ein textfeld. der inhalt wird über einen button mit der getText() Methode ausgelesen. Dies funktioniert soweit alles. 
jetzt möchte ich aber einen try- catch block machen der überprüft, ob in das textfeld was hineingeschrieben wurde. wenn nein soll ...println("fehler") kommen. könnt ihr mir vielleicht sagen wie mein try catch konstrukt aussehen muss, dass dies funktioniert? ich komme irgendwie auf keinen grünen zweig... danke


----------



## The_S (28. Nov 2008)

Es wird aber keine Exception geworfen, falls im Textfeld nichts steht. Eine einfache If-Abfrage genügt.


```
if (textfeld.getText().isEmpty()) {
  // leer
}
```


----------



## Guest (28. Nov 2008)

so hatte ich zuerst gemacht. meine aufgabenstellung lautet aber leider dass ich dies mit einer exception machen muss...


----------



## The_S (28. Nov 2008)

Dann solltest du wohl eine eigene Exception schreiben und ggf. werfen. In der aufrufenden Methode sollte dann die Exception abgefangen werden.

Du kannst dir diese beiden Beiträge in diesem Zusammenhang mal ansehen:

http://www.java-blog-buch.de/0501-fehler-in-java/
http://www.java-blog-buch.de/0502-fehlerbehandlung/

Ansonsten ist es evtl. hilfreich, wenn du uns die Aufgabenstellung mitteilst.


----------



## Guest (28. Nov 2008)

die aufgabenstellung lautet: fangen sie die exception in einer extra exceptionklasse ab. ich soll also, wenn keine eingabe im textfeld steht, dies in einer extra exception klasse abfangen.

in meinem gui wird also die eingabe des textfeldes über einen actionListener des "lesen"-buttons ausgelesen.





```
guiKlasse:

lesenbutton.addActionListener(new ActionListener(){
	    	public void actionPerformed(ActionEvent e){
	    
	    	
	    	String text=textfield.getText();

   }
   });
```

und jetzt soll ich also dort ein exception konstrukt erzeugen, das dann ausgibt :"es ist keine eingabe erfolgt"
wie schreib ich nun eine extra exception klasse und fange dies dann in meinem actionlistener ab.?


----------



## The_S (28. Nov 2008)

Les dir meine beiden Links durch (vorallem den 2.), da ist *exakt* das erklärt (natürlich etwas allgemeiner).


----------



## Guest (28. Nov 2008)

das hab ich schon gemacht. mir ist allerdings trotzdem nicht ganz klar was in den try block, catch block und in die exceptionklasse muss.

muss im tryblock dann stehen:

try{
text==null;
}catch (??){
system.out.println("keine eingabe erfolgt!")
}


stimmt das?

was muss ich dann in die exceptionklasse schreiben?


----------



## The_S (28. Nov 2008)

Der Abschnitt "Eine (eigene) Exception werfen zeigt dir, was in deine Exception muss, und wie du sie wirfst. Außerdem wird dir zum Ende dieses Kapitels noch gezeigt, wie du die selbst erstellte Exception wieder abfangen kannst. Wenn du es anhand dieser Ausführungen überhaupt nicht verstehst (wenn du konkrete (keine allgemeinen) Fragen hast, dann frag), bin ich leider der falsche Ansprechpartner bei dieser Frage. Weil deutlicher kann ICH es dir nicht erklären.

Dein Code stimmt nicht, weil er recht sinnfrei und nicht kompilierbar ist.

Also wenn du mir sagst, was du nicht verstanden hast, kann ich dir vermutlich eher helfen (aber wahrscheinlich nicht mehr vor Sonntag/Montag).


----------



## Guest (28. Nov 2008)

ich müsste ja eigentlich nur wissen was ich in den try block schreiben muss, um ein leeres textfeld abzufangen, alles andere is mir klar.

muss da:  textfeld.getText() rein?


----------



## Foermchen82 (28. Nov 2008)

mach einfach so:

```
try{
if(text == null || text.isEmpty())
throw new Exception();
}
catch(Exception e){
...
}
```

Ist zwar keine schnöne variante, da die TextBox nun mal keine Exception direlt wirft. Aber wenn du es unbedingt über ein Exception machen musst, geht es halt nur so.


----------



## Guest (28. Nov 2008)

Um festzustellen, ob das Textfeld leer ist (=es steht kein einziges Zeichen darin), könnte man textfeld.getText().length() prüfen.


----------



## Foermchen82 (28. Nov 2008)

die isEmpty methode macht nichts anderes!!


----------



## Murray (28. Nov 2008)

Foermchen82 hat gesagt.:
			
		

> die isEmpty methode macht nichts anderes!!



Stimmt, aber die Antwort (war leider gerade nicht eingeloggt) bezog sich auf den Post darüber


----------

