On Saturday, 2 August 2025 at 20:29:22 UTC, Brother Bill wrote:
From page 233 of "Programming in D". ``` import std.stdio; import std.exception;void main() { MyClass variable; use(variable); } class MyClass { int member; } void use(MyClass variable) { writeln("variable: ", variable); try { writeln(variable.member); // ← BUG } catch (Exception ex) { writeln("Exception: ", ex); } } ```Why does this run, but not display expected null reference exception?
Not all errors are exceptions, Expection is just a class in the std, and then theres Error which is "more important" and `catch(Error)` gets you some extra cases, you can define your own. etc.
For most cases of `try` to do anything someone had to write a literal `Throw`
but I think the os kills you before you even passed something to writeln. Fundmentally youd have to have *every* access of a class be null checked, which I bet people want, but must not be part of the 30 year old c compiler that d comes from.
