Handle the case where the data (splits) are larger than the number of fields/types

In 2.2, l.399 throws ArrayIndexOutOfBoundsException (if strict = false). Also, added a defensive try-catch in the message composition.