On 05/06/2009 11:43 AM, 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.
E.g.
void storeMessage(Message message) throws Throwable
{
}
If that method fails in any way, even if it throw a RuntimeException or
Error then we need to handle it, since it would be a major problem if
the message didn't get saved.
The method could be declared to not throw Throwable and the caller would
just have to remember to catch (Throwable) but declaring the method as
throws Throwable prevents the possibility of the caller from forgetting
to do so.
That's a terrible idea. Please - never do this. :-)
The furthest one should go towards "reminding" the user to handle a runtime
exception is to add that exception to the "throws" clause of the method,
and document it.
- DML