Checked vs unchecked exceptions
Moritz Maxeiner via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jun 26 18:17:24 PDT 2017
On Tuesday, 27 June 2017 at 00:29:53 UTC, crimaniak wrote:
> On Monday, 26 June 2017 at 19:31:53 UTC, Moritz Maxeiner wrote:
>>
>> And the good *way* to achieve this result would be the
>> following:
>> - When visiting `startFoo`, the compiler automatically
>> aggregates all different exceptions it may throw and stores
>> the resulting set
>> - If `startFoo` is going to be part of a (binary) library and
>> its symbol is exported, also export its exception set
>> - Improve the compiler's nothrow analysis such that if
>> startFoo is called in scope S, but all of the exceptions in
>> its exception set are caught (i.e. can't break out of scope
>> S), it is treated as nothrow in S.
>> - Enclose the call to `startFoo` in B in a nothrow scope.
> After preparing my message I read tail of the thread and see
> your vision very close to mine. 👍
I wouldn't call it a vision, since I personally don't need it.
It's just that I consider checked exceptions as an excuse for not
improving a deficient compiler.
>
>>> So listing exceptions that can be thrown is a good thing
>>> because it helps you write more reliable code.
>>
>> It is a bad thing because you force a human to do a machine's
>> job.
> This is a bad necessity, but a necessary opportunity. Sometimes
> you need to be sure that the compiler's vision matches yours.
I would need a concrete example that's not either solved by the
steps mentioned in my post, or using compile time introspection
on a function's exception set (as shown in John's idiomatic
proposal [1]).
[1]
http://forum.dlang.org/post/lxejskhonjtiifvvgwnd@forum.dlang.org
More information about the Digitalmars-d
mailing list