Changes

Summary

  1. - Introduce UnhandledException as a root for ultimate exceptions like (details)
Commit 4fe83d39f7d10f468345f0b5b7fa335a76a45eae by dionisiydk
- Introduce UnhandledException as a root for ultimate exceptions like
Halt and UnhandledError. The ultimate meaning here is that such
exceptions execute the UI action to interrupt the process execution as
the result of not being handled. So they do not raise any other extra
 exception. And in interactive mode they trigger the UIManager to open a
debugger. Now with common hierarchy for Halt and UnhandledError we can
simplify many places where we now write UnhandledError, Halt.
- raise an UnhandledError as default implementation for #defaultAction.
There are already several duplicated #defaultAction's in the hierarchy
(removed here). It is better to have it as default implementation with
following description:  Even if not all exceptions are errors the
absence of a handler for signaled exception is considered as an error by
default. Therefore #defaultAction for Exception raises an error, an
UnhandledError.
- UnhandledError delegates its own default action to underlying
exception using #unhandledErrorAction. For example It allows to have
specific debugger for Warning while it still processed through same
UnhandledError machinery.
- Warning is processed through UnhandledError logic (see previous point)
- TestFailure is processed through UnhandledError logic
The file was modifiedsrc/Flashback-Decompiler/CannotDecompileNativeBoostCalls.class.st (diff)
The file was modifiedsrc/Kernel/Warning.class.st (diff)
The file was modifiedsrc/SUnit-Core/TestFailure.class.st (diff)
The file was modifiedsrc/Kernel/Halt.class.st (diff)
The file was modifiedsrc/Kernel/IllegalResumeAttempt.class.st (diff)
The file was modifiedsrc/Kernel/UnhandledError.class.st (diff)
The file was modifiedsrc/Kernel/Abort.class.st (diff)
The file was modifiedsrc/Kernel/Error.class.st (diff)
The file was modifiedsrc/Kernel/Exception.class.st (diff)
The file was addedsrc/Kernel/UnhandledException.class.st

Summary

  1. - Introduce UnhandledException as a root for ultimate exceptions like (details)
Commit 4fe83d39f7d10f468345f0b5b7fa335a76a45eae by dionisiydk
- Introduce UnhandledException as a root for ultimate exceptions like
Halt and UnhandledError. The ultimate meaning here is that such
exceptions execute the UI action to interrupt the process execution as
the result of not being handled. So they do not raise any other extra
 exception. And in interactive mode they trigger the UIManager to open a
debugger. Now with common hierarchy for Halt and UnhandledError we can
simplify many places where we now write UnhandledError, Halt.
- raise an UnhandledError as default implementation for #defaultAction.
There are already several duplicated #defaultAction's in the hierarchy
(removed here). It is better to have it as default implementation with
following description:  Even if not all exceptions are errors the
absence of a handler for signaled exception is considered as an error by
default. Therefore #defaultAction for Exception raises an error, an
UnhandledError.
- UnhandledError delegates its own default action to underlying
exception using #unhandledErrorAction. For example It allows to have
specific debugger for Warning while it still processed through same
UnhandledError machinery.
- Warning is processed through UnhandledError logic (see previous point)
- TestFailure is processed through UnhandledError logic
The file was addedsrc/Kernel/UnhandledException.class.st
The file was modifiedsrc/Flashback-Decompiler/CannotDecompileNativeBoostCalls.class.st (diff)
The file was modifiedsrc/Kernel/Warning.class.st (diff)
The file was modifiedsrc/Kernel/UnhandledError.class.st (diff)
The file was modifiedsrc/Kernel/Halt.class.st (diff)
The file was modifiedsrc/Kernel/Abort.class.st (diff)
The file was modifiedsrc/Kernel/Exception.class.st (diff)
The file was modifiedsrc/Kernel/IllegalResumeAttempt.class.st (diff)
The file was modifiedsrc/Kernel/Error.class.st (diff)
The file was modifiedsrc/SUnit-Core/TestFailure.class.st (diff)