Design - Exception in Thread

Status
Nicht offen für weitere Antworten.
T

Thread-Ersteller

Gast
Guten Tag die Herren (und Damen),

ich habe derzeit ein Designproblem.

Kurz skizziert:

Ich habe einen / mehrere Threads in denen irgendwas passiert (oh, Wunder!).
Nun kann es jedoch passieren, dass in einem Thread eine Exception fliegt. Leider kann ich die nicht einfach so lange weiter reichen, bis sie in einem Logikgerüst angelangt, wo entsprechend darauf reagiert werden kann.

Konkret:
In dem jeweiligen Thread wird über ein Socket etwas eingelesen. Dabei kann eben eine Exception fliegen. Nur frage ich mich nun, wie ich darauf reagieren soll. Wenn über das Socket nichts gelesen werden kann, okay, dann ist das ungut. Ich könnte die Exception in der run() Methode abfangen und dann mit "nichts" darauf reagieren. Allerdings muss dann der Hauptteil des Programms über das Unglück berichtet werden. Nur will ich in den Thread keine Programmlogik unterbringen, weil das Thread-Konstrukt relativ ünabhängig sein soll:

Code:
	// e ist ein Objekt, dessen Methode aufgerufen wird, wenn der Lesevorgang abgeschlossen ist
	public void asyncRead(OperationDoneEvent e) {
		new EventThread(e) {
			public void run() {
				try {
					// rdr ist der InputStream des Sockets
					int val = rdr.read();
					// getEvent() ist das oben beschriebene Objekt e
					getEvent().OperationFinished(ba);
				}
				catch (IOException ex) {
					// Tja, und nun?
				}
			}
		}.start();
	}

Wie löse ich also nun das Problem elegant?

Ich hoffe, dass man mir irgendwer helfen kann.

Mit freundlichen Grüßen

ich
 

schalentier

Gesperrter Benutzer
Dein Code is bissel unklar irgendwie, aber offensichtlich rufst du eine Methode auf, wenn alles korrekt gelesen wurde (OperationFinished, Methoden werden in Java aber klein geschrieben!).

Wenn meine Annahme korrekt ist, dann man doch einfach eine zweite Methode und aender das so ab:



Code:
// e ist ein Objekt, dessen Methode aufgerufen wird, wenn der Lesevorgang abgeschlossen ist
   public void asyncRead(OperationDoneEvent e) {
      new EventThread(e) {
         public void run() {
            try {
               // rdr ist der InputStream des Sockets
               int val = rdr.read();
               // getEvent() ist das oben beschriebene Objekt e
               getEvent().operationFinished(ba);
            }
            catch (IOException ex) {
               getEvent().operationFailed( ex );
            }
         }
      }.start();
   }
 

Niki

Top Contributor
Registrier bei deinen Runnable-Objekten eigene ExceptionListener. Diese können dann den notwendigen Logik-Teil ausführen:
Code:
public class MyRunnable implements Runnable{

  private List<ExceptionListener> exceptionListener= null;

  public MyRunnable(){
    exceptionListener = new ArrayList<ExceptionListener>();
  }

  public void addExceptionListener(ExceptionListener ex){
    exceptionListener.add(ex);
  }
  
  //genauso eine remove Methode....

  private void notifyListener(Throwable t){
    for(ExceptionListener e : exceptionListener)
      e.exceptionOccured(t);
  }

  public void run(){

  try{
    //hier Code ausführen...
  }catch(Exception ex){
    notifyListener(ex);
  }

  }

}

und das ExceptionListener Interface:
Code:
public interface ExceptionListener{
  public void exceptionOccured(Throwable t);
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Exception design Allgemeine Java-Themen 2
m@nu Exception-Design Allgemeine Java-Themen 4
J Meinung zum verwendeten Design Pattern Allgemeine Java-Themen 4
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
S ArrayList Design Allgemeine Java-Themen 4
S Interface Design von HookUp oder Callback Methoden für eigenes Framework Allgemeine Java-Themen 9
Kirby.exe Framework für Game Design Allgemeine Java-Themen 8
C WindowBuilder Design funktioniert nicht Allgemeine Java-Themen 0
M Diverse Design-Fragen Allgemeine Java-Themen 6
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
M OOP Design Pattern - "extends Observable implements Observer" Allgemeine Java-Themen 0
T OOP Fehler im Design Allgemeine Java-Themen 9
perlenfischer1984 Welches Design Pattern ist geegneit. Allgemeine Java-Themen 7
perlenfischer1984 Hilfe bei Design (Pattern) Allgemeine Java-Themen 5
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
R Parameter Adapter - Design Allgemeine Java-Themen 1
D Bezüglich Design meines Codes Allgemeine Java-Themen 1
D OOP Design Pattern für GUI - Datenbank Anwendung Allgemeine Java-Themen 1
S Java Design Frage Allgemeine Java-Themen 10
L OOP Klassen-Design (static oder nicht?) Allgemeine Java-Themen 3
P Auf die Anzahl der Joins achten beim WS design Allgemeine Java-Themen 1
M OOP Design Frage Allgemeine Java-Themen 2
J Domain Driven Design - Modellierungsfrage Allgemeine Java-Themen 3
F Welches Design Pattern? Allgemeine Java-Themen 3
H MVC Design Allgemeine Java-Themen 9
J Swing Eigenes Button-design Allgemeine Java-Themen 2
Q Kapselung Allgemeine Design- Frage Allgemeine Java-Themen 8
Z Design um boolsche ausdrücke zu speichern & auszuwerten Allgemeine Java-Themen 3
A Sinnvolles Software Design bei Eigenschaftsänderungen von Objekten Allgemeine Java-Themen 7
C Gutes Code Design (3 Schichten Modell) Allgemeine Java-Themen 19
D Design Stations-Gitter Allgemeine Java-Themen 4
M Public Static importRunning -> Bad Design oder ok ? Allgemeine Java-Themen 5
L Software-Design: Kommunikation mit SerialPort (RXTX) Allgemeine Java-Themen 2
D [Drag&Drop] Design-Pattern-Frage Allgemeine Java-Themen 4
G Design Patterns für Programm Allgemeine Java-Themen 3
I Wie populär ist Design by Contract in Java und was haltet ihr davon? Allgemeine Java-Themen 5
Landei Design-Problem Formel-Parser Allgemeine Java-Themen 10
J Aktionen im State-Design-Modell Allgemeine Java-Themen 3
S Design Oberfläche Allgemeine Java-Themen 2
L Design-Frage: Platzierung der Save-Methode Allgemeine Java-Themen 3
G Domain Driven Design Model Allgemeine Java-Themen 14
G konkretes Domain Driven Design Aggregate Allgemeine Java-Themen 2
ruutaiokwu welches design pattern? frage an die oo-experten unter euch... Allgemeine Java-Themen 3
G Accordion Design Pattern Frage Allgemeine Java-Themen 2
hdi Hilfe beim Design (Stichwort OO, Pattern, ...) Allgemeine Java-Themen 11
B Design Problem Allgemeine Java-Themen 8
faulelotte Verständnisproblem Domain Driven Design Allgemeine Java-Themen 3
S Frage zum Design der Datenstruktur Allgemeine Java-Themen 10
D design gesucht - Angabe von zu ersetzenden substrings Allgemeine Java-Themen 2
D Design ohne Getter und Setter Allgemeine Java-Themen 8
D Design: on-the-fly-Parsing + Datenstrukturen Allgemeine Java-Themen 5
N Welches design pattern? Allgemeine Java-Themen 8
D design client server Allgemeine Java-Themen 10
T Design-Frage Allgemeine Java-Themen 14
S XML-Parsing / public-Member-Variablen / Design-Frage Allgemeine Java-Themen 8
S JToolBar Design Allgemeine Java-Themen 3
M Bildersyncronisierung - Design Patterns? Allgemeine Java-Themen 2
G Composite, Design Pattern, printTree Allgemeine Java-Themen 42
N Design-Frage: persistent machen per Reflection Allgemeine Java-Themen 3
M Frage zum Design :: allgemein Allgemeine Java-Themen 6
M MVC Design Pattern - Verständniss Fragen Allgemeine Java-Themen 3
U Frage zu DB Design Allgemeine Java-Themen 3
K Design / Implementierung Allgemeine Java-Themen 5
N Checkstyle - Design for Extension Allgemeine Java-Themen 4
F Design Pattern zur Realisierung von Mehrfachvererbung? Allgemeine Java-Themen 8
E Was ist ein gutes Design fuer meine Programm? Allgemeine Java-Themen 3
F Paket und Software Design Fragen. Allgemeine Java-Themen 5
P Apple Design Allgemeine Java-Themen 5
S design frage Allgemeine Java-Themen 10
T Design-Tipp gesucht Allgemeine Java-Themen 2
M Design von Java Klassen Allgemeine Java-Themen 2
G java design von klassen und projekten Allgemeine Java-Themen 6
K Design: Klassen in Pakete aufteilen - Eure Meinung Allgemeine Java-Themen 8
S Programmierstil / design Allgemeine Java-Themen 9
R Design-Frage Allgemeine Java-Themen 9
N Hilfe beim Design Allgemeine Java-Themen 13
D Design Pattern: Singleton Allgemeine Java-Themen 4
Torres Design-Problem mit Jakarta Struts Allgemeine Java-Themen 2
A Anwendungs-Design (Plugin-Architektur) Allgemeine Java-Themen 4
W Queue.remove() -> no such element exception Allgemeine Java-Themen 17
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
N Kann ich die Nullpointer Exception umgehen Allgemeine Java-Themen 12
N A java Exception has occured Allgemeine Java-Themen 8
G javafx "class path" exception Allgemeine Java-Themen 5
H Interface PluginSystem ClassNotFound exception für library Klassen Allgemeine Java-Themen 10
tom.j85 Exception bei Abfrage von Ländercodes in API? Allgemeine Java-Themen 13
S Exception Allgemeine Java-Themen 5
LimDul Streams und Exception Allgemeine Java-Themen 8
C FileLock - Exception wird immer geworfen Allgemeine Java-Themen 4
S Wertbeschränkung Exception oder Anpassung? Allgemeine Java-Themen 4
D Nullpointer Exception Problem Allgemeine Java-Themen 5
Kirby.exe Nullpointer Exception bei Queue Allgemeine Java-Themen 5
R Schlüsselworte "Throw new exception" gibt nicht den String als Fehlermeldung aus Allgemeine Java-Themen 2
P Swing Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: npoints > xpoints.length || npoints > ypoints.length Allgemeine Java-Themen 5
S RMI Exception Allgemeine Java-Themen 0
S MSSQL Exception & Connection String Allgemeine Java-Themen 19
S Interface, generischer Datentyp, Exception? Allgemeine Java-Themen 3
coolian warum bekomme ich ein string index out of bounds exception Allgemeine Java-Themen 17
B Aufruf der Methode ergibt eine Exception Allgemeine Java-Themen 13
S Exception in thread "main" java.lang.NullPointerException at FamilienApp.main(FamilienApp.java:15) Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben