Expression switch exception naming

forax at forax at
Wed Mar 28 19:44:20 UTC 2018

My point was more that if you want an exception and not an error,
you can add a default than discussing the merit of implicit vs explicit throwable.

The compiler should emit a code that throw an error for unknown enum constant.

if the compiler emit a code that throw an exception,
people will also be able to catch it, adding another way to react to a missing enum constant. 


----- Mail original -----
> De: "Brian Goetz" <brian.goetz at>
> À: "Remi Forax" <forax at>
> Cc: "Gavin Bierman" <gavin.bierman at>, "amber-spec-experts" <amber-spec-experts at>
> Envoyé: Mercredi 28 Mars 2018 20:55:04
> Objet: Re: Expression switch exception naming

>> Using a runtime exception is like another less readable way to do exactly that.
> It's both less and more readable.
> Its less readable in that its implicit in the code, rather than
> explicit.  But its probably the case that the exception thrown
> implicitly will be more informative to the user than the hand-written
> one, which is usually:
>     default: throw new AssertionError("can't get here");
> Which is less readable for the poor fellow who had to debug it.

More information about the amber-spec-experts mailing list