Alternatives to exceptions for error handling
romankashicin at gmail.com
Sun Nov 22 17:37:18 UTC 2020
In the video from DConf 2020 about @live functions
(https://youtu.be/XQHAIglE9CU) Walter mentioned that all @live
functions are nothrow. He also thinks that exceptions are
I've been programming in Google's C++, Go & Rust for quite a few
years and I couldn't agree more with this assessment. Error
handling is a very important part of program engineering, and
having errors reflected in function return types is very useful
in practice. This helps a lot with constructing correct programs.
So my question is: does/will D provide support for alternative
approaches to error handling? In practice, this typically
includes 2 things:
1. A sum type that contains either a result or an error. Like
Result in Rust or Expected that Andrei proposed for C++. It's
easy to implement in D, but having this in Phobos would be nice.
2. Some kind of syntactic sugar for propagating errors upstream
(? macro in Rust, check/handle proposal in Go
https://go.googlesource.com/proposal/+/master/design/go2draft-error-handling.md, an ugly macro in C++, etc.).
More information about the Digitalmars-d