NM, brainfart.
But I'm confused just why you're tying this to UncaughtExceptionHandler. The
invariant will still go straight to hell if none has been provided, right?
Also, why not fix this in a single spot rather than several scattered
places? Also, it's kind of weird to catch Throwable rather than Exception.
But assuming you're sure about Throwable, seems like you should instead do
something like this in Panel:
public class PanelDetachException extends RuntimeException {
PanelDetachException(Set<Throwable> causes) { ... }
Set<Throwable> getCauses() {...}
}
protected void doDetachChildren() {
Set<Throwable> caught = new HashSet<Throwable>();
// Ensure that all child widgets are detached.
for (Iterator<Widget> it = iterator(); it.hasNext();) {
Widget child = it.next();
try {
child.onDetach();
} catch (Throwable e) {
caught.add(e);
}
}
if (!caught.isEmpty()) {
throw new PanelDetachException(caught);
}
}
On Mon, Sep 14, 2009 at 1:35 PM, John LaBanca <[email protected]> wrote:
> The uncaughtexceptionhandler is in an inner try/catch block. The outer
> try/finally still runs, so we always reach the finally block.
>
> Thanks,
> John LaBanca
> [email protected]
>
>
> On Mon, Sep 14, 2009 at 4:34 PM, John LaBanca <[email protected]> wrote:
>
>> What do you mean?
>>
>>
>> Thanks,
>> John LaBanca
>> [email protected]
>>
>>
>>
>> On Mon, Sep 14, 2009 at 4:33 PM, <[email protected]> wrote:
>>
>>> On 2009/09/14 20:23:31, jlabanca wrote:
>>>
>>>
>>> So the UncaughtExceptionHandler violates finally? Isn't that a pretty
>>> fundamental problem?
>>>
>>>
>>> http://gwt-code-reviews.appspot.com/64815
>>>
>>
>>
>
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---