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