I generally prefer switch statements for enums like this (and then can use `default` for throw).