From ba781321203100b58916dd61896e52ec39b182c9 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 14 Jun 2023 07:38:43 +0200 Subject: [PATCH] Clarify error handling --- .../org/argeo/cms/web/CmsWebEntryPoint.java | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/swt/rap/org.argeo.cms.swt.rap/src/org/argeo/cms/web/CmsWebEntryPoint.java b/swt/rap/org.argeo.cms.swt.rap/src/org/argeo/cms/web/CmsWebEntryPoint.java index 4d91cf8e2..216dc3654 100644 --- a/swt/rap/org.argeo.cms.swt.rap/src/org/argeo/cms/web/CmsWebEntryPoint.java +++ b/swt/rap/org.argeo.cms.swt.rap/src/org/argeo/cms/web/CmsWebEntryPoint.java @@ -271,25 +271,24 @@ public class CmsWebEntryPoint extends AbstractSwtCmsView implements EntryPoint, return null; } }); - } catch (Throwable e) { - if (e instanceof SWTError) { - SWTError swtError = (SWTError) e; - if (swtError.code == SWT.ERROR_FUNCTION_DISPOSED) { - log.error("Unexpected SWT error in event loop, ignoring it. " + e.getMessage()); - continue eventLoop; - } else { - log.error("Unexpected SWT error in event loop, shutting down...", e); - break eventLoop; - } - } else if (e instanceof ThreadDeath) { - throw (ThreadDeath) e; - } else if (e instanceof Error) { - log.error("Unexpected error in event loop, shutting down...", e); - break eventLoop; - } else { - log.error("Unexpected exception in event loop, ignoring it. " + e.getMessage()); + } catch (SWTError e) { + SWTError swtError = (SWTError) e; + if (swtError.code == SWT.ERROR_FUNCTION_DISPOSED) { + log.error("Unexpected SWT error in event loop, ignoring it. " + e.getMessage()); continue eventLoop; + } else { + log.error("Unexpected SWT error in event loop, shutting down...", e); + break eventLoop; } + } catch (ThreadDeath e) { + // ThreadDeath is expected when the UI thread terminates + throw (ThreadDeath) e; + } catch (Error e) { + log.error("Unexpected error in event loop, shutting down...", e); + break eventLoop; + } catch (Throwable e) { + log.error("Unexpected exception in event loop, ignoring it. " + e.getMessage()); + continue eventLoop; } } if (!display.isDisposed()) -- 2.30.2