On Sunday, 24 February 2019 at 11:05:31 UTC, Alex wrote:
On Sunday, 24 February 2019 at 10:53:09 UTC, aliak wrote:
[...]
There is a semantic difference between a switch and a final
switch statement, defined here:
https://dlang.org/spec/statement.html#final-switch-statement
By this difference, the writer of the final switch declares,
that it is unrecoverable to pass something unexpected to the
switch statement. The catch of an error as you demonstrated is,
therefore, a contradiction to the finality of the switch.
Hmm ok. Yes that makes sense to see it that way. Thanks!
I mean, if you know, that something beyond the enum can be
passed, use a normal switch and handle the case in the default
section. If you are able to ensure, this case is unreachable,
you express this knowledge/ability by the final switch and
don't need the try-catch clause at all.
Aye, agreed.