[jboss-dev] throws Throwable

Andrew Lee Rubinger andrew.rubinger at redhat.com
Wed May 6 15:35:44 EDT 2009


Jason T. Greene wrote:
> Max Rydahl Andersen wrote:
>>
>>
>> Tim Fox wrote:
>>> David M. Lloyd wrote:
>>>> On 05/05/2009 03:02 AM, Carlo de Wolf wrote:
>>>>> What's the use case for having a public method: doSomething(Object 
>>>>> someArgs...) throws Throwable ? 
>>>>
>>>> No valid use cases exist afaik.  Any method that throws Throwable 
>>>> should die, if it's within our power to kill it. 
>>> Declaring a method as "throws Throwable" forces the caller to handle 
>>> the exception even if the exception/error thrown is unchecked.
>> Then do throws RuntimeException
>>
>> Error's are *nonrecoverable* since they are OutOfMemory or hard VM 
>> errors.No client can ever recover sanely.
> 
> One valid case for throwing Throwable is a generic invocation mechanism
> (interceptors, proxies, etc).

Just because it's generic doesn't mean the caller can do anything about 
it.  In that case why not just "throws Exception"?

BTW as practice lately I tend to declare and document unchecked 
exceptions to give the user a clear idea of what to expect, ie:

/**
  * @throws IllegalStateException If not yet initialized
  * @throws IllegalArgumentException If you gave me null, bastard
  */
myMethod(String arg) throws IllegalStateException, 
IllegalArgumentException{}

S,
ALR

-- 
Andrew Lee Rubinger
Sr. Software Engineer
JBoss, a division of Red Hat, Inc.
http://exitcondition.alrubinger.com



More information about the jboss-development mailing list