# IllegalArgumentException nicht abfangbar



## Marian (1. Okt 2004)

auf der Suche nach einem richtigen Transaktionsattribut trat ein seltsames Problem auf. Ich möchte nach einem Entity-Bean in einem Session-Bean suchen.

-> 
	
	
	
	





```
MitarbeiterEB mitarbeiter2 = GetReference.getMitarbeiterEBHome().findByPrimaryKey(mitarb);[\code]

dabei habe ich [code]String mitarb = null;[\code] gesetzt, um eine Exception auszulösen. (Test-Fälle für die Transaktionsgeschichte)

jetzt habe ich versucht, diese Exception im catch-Block abzufangen.

Einmal ganz allgemein mit catch(Exception ex){} ; und dann im Speziellen mit catch(IllegalArgumentException ){} - dabei trat nun das Problem auf, das diese Exception, trotz meines catch-Blockes nicht abgefangen wurde und eine riesige Fehlermeldung mit der "IllegalArgumentException " im jBoss kam. 

das Session - Bean ist mit CMT verwaltet
JVM ist 1.4.2

Kann mir jemand helfen???
```


----------



## Guest (2. Okt 2004)

Kommt wohl daher, dass der Stacktrace im Containercode ausgegeben wird.
Deine Session wurde aus dem Speicher gehauen und die Transaktion mit Rollback
beendet.


----------



## Marian (4. Okt 2004)

Aber wieso kann ich dann aber eine NumberFormatException abfangen ?? Irgendwie passiert das nur mit der  "IllegalArgumentException"


----------



## Nook (4. Okt 2004)

Wird wohl daran liegen, dass die Exception ausserhalb Deines try-catch-blockes aufgetreten ist. Schau Dir mal den Stacktrace genau an und überprüfe, ob die Exception in Deinem Code auftritt.


----------



## Marian (4. Okt 2004)

Die auslösende Anweisung liegt schon im try-catch Block.... Ich weiss aber nicht ob das ein Bug im jBoss oder in der JVM oder sonst was ist.


----------



## Bleiglanz (4. Okt 2004)

> Einmal ganz allgemein mit catch(Exception ex){} ; und dann im Speziellen mit catch(IllegalArgumentException ){} -


die Reihenfolge versteh ich nicht, du musst mit der speziellen anfangen und die allgemeine zum Schluss machen, wie das bei Exceptions eben so üblich ist ?????


----------



## Nook (4. Okt 2004)

Kannst Du mal ein Stück (je mehr je besser  vom Stacktrace und Code posten, dann ist es vielleicht einfacher den Fehler zu finden ...


----------



## Marian (4. Okt 2004)

try{

String mitarb = "blabla";
MitarbeiterEB mitarbeiter2 = GetReference.getMitarbeiterEBHome().findByPrimaryKey(mitarb);

}
catch(Exception){}

>>mitarb sollte vom Typ "Long" sein


----------

