[webbeans-dev] Re: IllegalArgumentException (Was: Re: Updated EJB SPI)

Pete Muir pmuir at redhat.com
Wed Mar 18 07:16:01 EDT 2009


On 18 Mar 2009, at 07:27, Carlo de Wolf wrote:

> Pete Muir wrote:
>>
>> On 17 Mar 2009, at 22:29, Carlo de Wolf wrote:
>>
>> ...
>>
>>> On another note I would name the  
>>> SessionObjectReference.getReference method getBusinessObject (in  
>>> the likes of SessionContext.getBusinessObject).
>>
>> Done
>>
>>> And both should throw an NoSuchEJBException if the EJB is already  
>>> removed.
>>
>> Done
>>
>>> (Note: keep the IllegalStateException for invalid  
>>> businessInterface.)
>>
>> Not IllegalArgumentException? I went for IllegalArguementException
>>
>> I also did the changes Ken suggested whilst there...
> Well actually I hate both exceptions in this case. I went for  
> IllegalStateException, because that's how  
> SessionContext.getBusinessObject works, IllegalArgumentException  
> would have been the obvious.

Ok, updated to EJB spec version as that is best for consistency...

>
>
> I don't entirely agree with Bloch's guidelines for exception  
> handling (#1). To me the guideline should be: a checked exception  
> whenever an user error is encountered. A precondition on an argument  
> is an user error. So NoSuchBusinessInterfaceException would have  
> been better.
> Then again this leads to ugly coding (#2), so it might even be  
> better to add
> boolean SessionContext.isBusinessInterface(Class<?>  
> businessInterface);
> Then it becomes a programming error again.
>
> Ken, does this argument make sense to you? If so, I'll raise it in  
> EJB-EG.
>> ...
>>
> Carlo
>
> #1: Effective Java Item 40: Use checked exception for recoverable  
> conditions and run-time exceptions for programming errors
> #2: EJ Item 41: Avoid unnecessary use of checked exceptions

--
Pete Muir
http://www.seamframework.org
http://in.relation.to/Bloggers/Pete




More information about the weld-dev mailing list