July 04, 2021 [Issue 22099] scope(exit) / finally blocks not are always executed inside of a anonymous function | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=22099 moonlightsentinel@disroot.org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |backend CC| |moonlightsentinel@disroot.o | |rg Severity|normal |regression --- Comment #1 from moonlightsentinel@disroot.org --- Seems to be a regression from 2.077.1: Up to 2.077.1: Success with output: ----- Hello Bye ----- Since 2.078.1: Success with output: Hello Tagging as backend given that it works with LDC -- |
January 10, 2023 [Issue 22099] scope(exit) / finally blocks not are always executed inside of a anonymous function | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=22099 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla@digitalmars.com Resolution|--- |INVALID --- Comment #2 from Walter Bright <bugzilla@digitalmars.com> --- The trouble here is that a RangeError is being thrown. A RangeError is an Error, and finally blocks are not executed when unwinding an Error. The rationale is that Errors are fatal, and may be thrown because the program has entered an invalid state. Executing finally blocks may cause further undefined behavior. Changing the exception type to Exception causes the program to work as expected, as Exceptions execute finally blocks when unwinding. Marked as INVALID. -- |
Copyright © 1999-2021 by the D Language Foundation