On Sunday, 15 February 2026 at 01:36:55 UTC, H. S. Teoh wrote:
Basically, the GC finds the set of dead objects in an unspecified order, which from the POV of user code should be regarded as random and unpredictable. Consider an object c of class C:

```
        class C {
                A a;
                B b;
                this(A _a, B _b) { a = _a; b = _b; }
                ~this() {
                }
        }

        auto a = new A;
        auto b = new B;
        auto c = new C(a, b);
```

When c goes out of scope, a and b are still referenced by c, but are no longer reachable from the rest of the program. The order in which the GC finds dead objects is not specified

Is it possible that during stack unwinding the GC kicks in and destroys an exception object before it is caught?

Reply via email to