try, catch, wait < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 14:32 So 14.10.2007 | Autor: | Herby |
Hallo,
ich habe mal ein Bufferprogramm erstellt und wollte busy waiting mit wait und notify verhindern, allerdings weiß ich schon wieder nicht so richtig, was hier nun wieder passiert.
Das Programm sieht so aus:
[Dateianhang nicht öffentlich]
Die generelle Funktionsweise ist mir schon klar (muss ja auch ) aber das Zusammenspiel zwischen den verschiedenen Exceptions verstehe ich nicht.
Wieso wird in dem catch-Block eine Exception eingefügt (das wollte Eclipse so)? Ich habe von try und catch noch gar keinen Plan
Und was schreibt man am schlauesten hier rein?
[Dateianhang nicht öffentlich]
Thx
Liebe Grüße
Herby
Dateianhänge: Anhang Nr. 1 (Typ: JPG) [nicht öffentlich] Anhang Nr. 2 (Typ: JPG) [nicht öffentlich]
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:10 So 14.10.2007 | Autor: | rainerS |
Hallo Herby,
> Wieso wird in dem catch-Block eine Exception eingefügt (das
> wollte Eclipse so)? Ich habe von try und catch noch gar
> keinen Plan
Try und catch gehören immer zusammen; es sind nur zwei Teile eines Konstrukts:
1: | try {
| 2: | AnweisungenA;
| 3: | }
| 4: | catch (BenannteException e) {
| 5: | AnweisungenB;
| 6: | } |
Damit wird die strukturierte Behandlung von Ausnahmebedingungen beschrieben. Wenn während des Abarbeitung der AnweisungenA eine Ausnahmebedingung auftritt, so wird die weitere Abarbeitung der AnweisungenA abgebrochen. Wenn es sich dabei um die Ausnahmebedingung BenannteException handelt, werden AnweisungenB ausgeführt. Tritt eine andere Ausnahmebedingung auf, so wird diese weiter nach oben in der Programmaufrufstruktur durchgereicht, bis ein catch (BenannteException e) gefunden wird, oder die oberste Ebene erreicht wird.
Das catch deklariert gleichzeitig die Variable e als Typ BenannteException für den Block mit AnweisungenB, sodass darauf Bezug genommen werden kann, zum Beispiel mit e.getMessage().
In Java muss jede Ausnahmebedingung im Programm abgefangen werden; dies wird dadurch erreicht, dass jede Methode alle möglichen Ausnahmebedingungen deklariert. Jede deklarierte Ausnahmebedingung muss durch einen umgebenden try-catch-Block abgefangen werden.
> Und was schreibt man am schlauesten hier rein?
Was willst du erreichen? Eine bestimmte Ausnahmebedingung auslösen. Das geht mit throw new BenannteException("Fehler","ausgelöst durch");.
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:45 Mo 15.10.2007 | Autor: | Herby |
Hallo Rainer,
so annähernd wird mir das, glaube ich, klar - um es vorsichtig auszudrücken. Ich werden die Anwendungen mal noch ein bisschen üben.
Danke für deine Erklärungen.
Liebe Grüße
Herby
|
|
|
|