Use-Case
We don't just want to provide a default value in case certain fields can't be parsed or are not present in the JSON. But also intercept these issues so we can log & monitor it, when it happens.
Example DSLs
1)
abstract class MyValue {
@BuiltValueHook(<deserializationError>: true)
static void _logError(MyValueBuilder b, Exception e, String key) => logger.logError(ParsingError(e, key))
or maybe even better would be to do the same globally
2) A global plugin that logs all deserialization exceptions 🤔
This is assuming if @nullable is used and if that field can't be parsed, the value will be null and now exceptions will be thrown