Comparing Exceptions and Errors
kdevel
kdevel at vogtner.de
Sat Jun 4 11:57:32 UTC 2022
On Friday, 3 June 2022 at 23:40:50 UTC, Steven Schveighoffer
wrote:
> During the last beerconf, I wrote a short blog post about how
> `Error` and `Exception` are different, and why you should never
> continue after catching `Error`s.
>
> Feedback welcome, I didn't announce here when I wrote it
> because it's kind of small/insignificant, but maybe it can help
> newcomers to the language:
> https://www.schveiguy.com/blog/2022/05/comparing-exceptions-and-errors-in-d/
>
> -Steve
Here my feedback:
1. What if div is called with x = -2147483648 and y = -1? Isn't
code
which allows a divisor == 0 to propagate to the CPU an error?
Must
the code thus not throw an object instantiated from a subclass
of `Error`?
What if I have that function div used in code which is called
from say
controller code of a CGI binary. Or likewise from a
vibe.d-thread servicing
a web request? How do I isolate that fault? Do I have to spawn
a subprocess
as Walter suggested in the case of memory corruption [1]?
[This is of course all rhetorical!]
2. Since 2017 or so I have written some 10 KLOC of D, maybe about
two dozen
classes deriving from Exception. But I did not annotate any of
my methods or
function with "nothrow" nor did I author any class deriving
from `Error`.
What does that mean? Am I `Error` blind?
3. Can you provide some piece of code which *must* throw `Error`
and cannot
throw an appropriate Exception?
[1] http://forum.dlang.org/post/t6ef8c$1cu5$1@digitalmars.com
Re: Why is D unpopular?
More information about the Digitalmars-d-learn
mailing list