Codereview request for 8006295: Base64.Decoder.wrap(java.io.InputStream) returns InputStream which throws unspecified IOException on attempt to decode invalid Base64 byte stream (original) (raw)

Alan Bateman Alan.Bateman at oracle.com
Fri Feb 1 14:59:13 UTC 2013


On 01/02/2013 14:35, Mark Sheppard wrote:

Hi Alan, I think it would be useful to convey some additional information relating the cause of the problem, even for diagnostic purposes. So analogous to CharacterEncodingException which exists for Charsets, providing a Base64EncodingException and Baes64DecodingException as derived from IOException, (as alluded to previously by Sherman,) could/would be useful. However, as the underlying encapsulating InputStream/FilterOutputStream is no exposed, and hence the overridden read/write methods publicly defined, how would such exceptions be reconciled against the generalized Output/InputStream returned by wrap()? Alternatively, perhaps throwing an IOException with an embedded Base64Encoding/DecodingException could also be used ? The exception message is detailed/useful already, it's just whether this needs a specialized IOException or an appropriate cause. If there are good reasons to recover differently to other I/O exceptions then it may make sense. The other useful thing about a specialized exception is that it could carry more context, like the line or position where the stream is corrupted.

-Alan.



More information about the core-libs-dev mailing list