Ok, it seems you are right. Then we have to change all the Throwable locations in the source code to the appropriate Exception catching.
Could you please the as a JIRA task? Or send a patch; Thanks; /Gurkan ________________________________ From: Mark Struberg <[email protected]> To: [email protected] Sent: Monday, January 12, 2009 1:50:33 PM Subject: Re: Throwable catching question what about: catch (RuntimeException er) { throw new CreationException(er); } catch (Exception e) { throw new WebBeansException(er); } ? At least I think we must not catch java.lang.Error! I think with 'exception' the spec really means java.lang.Exception and not all Throwables. We must not catch things like java.lang.OutOfMemoryError or java.lang.ThreadDead! This should be handled by the appsrv if any. I only know a hand full of apps who use Errors for program behaviour, and this mostly because they are basically _not_ being catched. LieGrü, strub --- Gurkan Erdogdu <[email protected]> schrieb am Mo, 12.1.2009: > Von: Gurkan Erdogdu <[email protected]> > Betreff: Re: Throwable catching question > An: [email protected] > Datum: Montag, 12. Januar 2009, 12:25 > Hi Mark; > > Good point :) It seems meaningless to do so. > > In the specification says that > "If any exception occurs while creating the instance , > the exception is throws by the create() method. If the > exception is the checked exception, it is wrapped and and > rethrown as an (unchecked) CreationException". > > I suspect that I did it wrongly. we may change *Exception* > to the *RuntimeException* as > catch (Throwable e) > { > if > (RuntimeException.class.isAssignableFrom(e.getClass())) > { > throw new CreationException(e); > } > else > { > throw new WebBeansException(e); > } > } > > > /Gurkan > > > ________________________________ > From: Mark Struberg <[email protected]> > To: [email protected] > Sent: Monday, January 12, 2009 12:33:59 PM > Subject: Throwable catching question > > Hi Gurkan! > > I have a question about a construct I saw some times (e.g. > in AbstracCommponent#create() ) and I frankly do not > understand what it's good for: > > catch (Throwable e) > { > if > (Exception.class.isAssignableFrom(e.getClass())) > { > throw new CreationException(e); > } > } > > So all Errors (like e.g. ThreadDead) are silently catched > away? > Is there any reason for this? > > Why not simply do a: > > catch (Exception e) > { > throw new CreationException(e); > } > > > Or did I miss something? > > txs and LieGrue, > strub
