Probably for historical reasons, the ItemSerializer interface's signature for serialize doesn't allow the throwing of any exceptions. This begs the question of what should be done if an exception arises; at the moment the only implementation just swallows the exception and logs an error.
It would make sense for this to be able to throw IOException, at least, and have the calling classes deal with that by swallowing the exception if that makes sense in context (although I suspect it seldom will).
Same applies to ItemCollectionSerializer.
Assigning to 0.10.0 as I don't want API changes on the 0.9.x maintenance branch.