Как получить более приятные исключения при использовании pureconfig с Enumeratum?https://github.com/pureconfig/pureconfig/tree/master/modules/enumeratum
import pureconfig._
import pureconfig.generic.auto._
import pureconfig.module.enumeratum._
import com.typesafe.config.ConfigFactory.parseString
import enumeratum._
import enumeratum.EnumEntry._
object example {
sealed trait Greeting extends EnumEntry with Snakecase
object Greeting extends Enum[Greeting] {
val values = findValues
case object Hello extends Greeting
case object GoodBye extends Greeting
case object ShoutGoodBye extends Greeting with Uppercase
}
}
import example._
case class GreetingConf(start: Greeting, end: Greeting)
val conf = parseString("""{
start: hello
end: SHOUT_GOOD_BYE
}""")
loadConfig[GreetingConf](conf)
Но:
val conf = parseString("""{
start: helloError
end: SHOUT_GOOD_BYEFoo
}""")
loadConfig[GreetingConf](conf)
Сбой с неприятным исключением.Вместо этого было бы прекрасно описательное Сообщение, подобное:
Can't parse key start to ENUM type Greeting. Only [hello, SHOUT_GOOD_BYE] are valid values.
.Как мне этого добиться?