Hi zusammen,
brauch mal wieder euren Rat.
Ich habe folgenden Fall bei mir implementiert:
D.h. ich habe eine Klasse, die verschiedene Methoden anbietet um spezielle Aufgaben zu erledigen.
Jede Aufgabe wir in einem extra Thread ausgeführt. Die Methode runThread(Thread) startet den jeweiligen Thread.
Man beachte hierbei
und
So nun will ich aber das ganze durch einen Thread pool erweitern.
Mein Thread pool erhält die Aufgaben übergeben und kümmert sich um alles weitere.
Nun habe ich aber das Problem dass ich nicht weiss wie ich die Exceptions, die ich hier mit den Methoden
und
bearbeite.
Meine
nimmt nur ein Runnable entgegen und wirft KEINE Exception. Es übergibt die Aufgabe an meinen ThreadPool.
Die Exception wird wenn dann in der run() Methode meines Runnable geworfen.
Wie soll ich die denn dann abfangen?
Also versteht ihr was mein Problem ist?
Mein ThreadPool weiss ja nichts über die Aufgabe die mein Runnable zu tun hat.
Er startet einfach die Aktion.
Bisher kümmert sich meine Methode
dass eine Aufgaben-spezifische Aktion bei einer Exception ausgeführt wird.
Mit meiner ThreadPool implementierung weiss ich gerade nicht wie ich das realisieren soll.
brauch mal wieder euren Rat.
Ich habe folgenden Fall bei mir implementiert:
Java:
class MyWorkerClass {
public doAction_a(){
try{
Thread myThread = new MyThread(){
// run calls runSub()
runSub() throws Exception{
//special work
}
}
runThread(myThread);
}catch{
handleException_a();
}
}
// ... doAction_b(), doAction_c() ...
public doAction_z(){
try{
Thread myThread = new MyThread(){
// run calls runSub()
runSub() throws Exception{
// special work
}
}
runThread(myThread);
}catch{
handleException_z();
}
}
}
D.h. ich habe eine Klasse, die verschiedene Methoden anbietet um spezielle Aufgaben zu erledigen.
Jede Aufgabe wir in einem extra Thread ausgeführt. Die Methode runThread(Thread) startet den jeweiligen Thread.
Man beachte hierbei
Java:
handleException_a()
Java:
handleException_z()
So nun will ich aber das ganze durch einen Thread pool erweitern.
Mein Thread pool erhält die Aufgaben übergeben und kümmert sich um alles weitere.
Nun habe ich aber das Problem dass ich nicht weiss wie ich die Exceptions, die ich hier mit den Methoden
Java:
handleException_a()
Java:
handleException_z()
Java:
class MyWorkerClass {
public doAction_a(){
// try{
Runnable myWork = new MyWork(){
runSub() throws Exception{
//special work
}
// }
submitWork(myThread); //wirft ja keine Exception mehr
// }catch{
// handleException_a();
// }
}
public doAction_z(){
// try{
Runnable myWork = new MyWork(){
// run calls runSub()
runSub() throws Exception{
// special work
}
// }
submitWork(myThread); //wirft ja keine Exception mehr
// }catch{
// handleException_z();
// }
}
}
Meine
Java:
submitWork(myThread);
Die Exception wird wenn dann in der run() Methode meines Runnable geworfen.
Wie soll ich die denn dann abfangen?
Also versteht ihr was mein Problem ist?
Mein ThreadPool weiss ja nichts über die Aufgabe die mein Runnable zu tun hat.
Er startet einfach die Aktion.
Bisher kümmert sich meine Methode
Java:
handleException_z()
Mit meiner ThreadPool implementierung weiss ich gerade nicht wie ich das realisieren soll.