Resolves #220. It seems many of the implementations of SubstitutionModel.canHandleDataType(DataType dataType) were throwing a java.lang.Exception with a message instead of returning false (i.e. they were implemented in a way that they could never return false). Two things are evil about this: (1) As a rule you should never throw or catch the top level java.lang.Exception -- it will take a while for us to work that pattern out of BEAST2, as it is insidious (2) The implementations of an innocent looking method will not just return false like a nice implementation would, but throw an exception instead -- that is hardly user-friendly behaviour. I have gone as far as remove "throws Exception" from the signature of canHandleDataType. It should never have been there in the first place. Wherever there was an exception thrown the method implementations now just return false.