I guess the try { catch } should be global to the switch, and return null in case of NumberFormatException or ParquetEncodingException and keep throwing the SerDeException one.