Right, but this one will not:
public LogEvent parseFrom(InputStream input) throws IOException,
ParseException {
return objectReader.readValue(input);
}
In any case I need to translate from Jackson's JsonProcessingException
to our ParseException.
On 2017-07-24 22:44, Gary Gregory wrote:
On Mon, Jul 24, 2017 at 1:31 PM, Mikael Ståldal <[email protected]> wrote:
The code you posted will never throw ParseException.
It sure does! See:
@Override
public LogEvent parseFrom(byte[] input) throws ParseException {
try {
return objectReader.readValue(input);
} catch (IOException e) {
throw new ParseException(e);
}
}
@Override
public LogEvent parseFrom(byte[] input, int offset, int length) throws
ParseException {
try {
return objectReader.readValue(input, offset, length);
} catch (IOException e) {
throw new ParseException(e);
}
}
Yes, ParseException could extend IOException, but I would still have to do
translation.
Translate from what to what? From one of kind of IOException to another
kind of IOException?
Gary
On 2017-07-24 22:20, Gary Gregory wrote:
Whaaaat? Note that the code I posted here compiles just fine. A
JsonProcessingException
is already a subclass of IOException. Wrapping JsonProcessingException
in
a ParseException is just adding a level of indirection for which I see no
point, especially when the methods already throw IOException.
As a side note, why can't ParseException extend IOException? You parse
some
kind of _input_, parsing does not happen in a void.
Gary
On Mon, Jul 24, 2017 at 12:56 PM, Mikael Ståldal <[email protected]>
wrote:
But that won't work, I need to at least translate JsonProcessingException
(Jackson specific, which we don't want to expose) to our own
ParseException.
On 2017-07-23 22:01, Gary Gregory wrote:
@Override
public LogEvent parseFrom(InputStream input) throws IOException,
ParseException {
return objectReader.readValue(input);
}