- UnsupportedError, MalformedError, EncryptedError, ResourceLimitError,
and MissingPartError all subclass ConvertError, so an existing
`except anydoc.ConvertError` keeps catching every one of them
- the part or stream at fault rides on `part`, the limit crossed on
`limit`, which is detail the JS bindings cannot carry
- an unreadable file still raises the OSError subclass any other read
of it would