Checked vs unchecked exceptions

crimaniak via Digitalmars-d digitalmars-d at puremagic.com
Mon Jun 26 17:29:53 PDT 2017


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. 👍

>> 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.



More information about the Digitalmars-d mailing list