Java: IOException при записи в ByteArrayOutputStream?

Поскольку ByteArrayOutputStream просто записывает в память, исключение IOException никогда не должно возникать. Однако из-за контракта интерфейса OutputStream все потоковые операции определяют IOException в своем предложении throws .

Как правильно «обрабатывать» "это никогда не возникающее IOException ? Просто обернуть операции в пустой блок try-catch ?

Или существуют реальные ситуации, когда ByteArrayOutputStream может вызвать исключение?

(См. Также: Как я могу обработать IOException, которое, как я знаю, никогда не может быть сгенерировано, безопасным и читаемым способом? )

EDIT

Как указывает Джон, ByteArrayOutputStream не объявляет предложение throws в методах write , которые он определяет, но наследует write (byte []) из OutputStream , и этот бросает IOEXception (довольно странно, что BAOS не переопределит этот метод, поскольку он может заменить версию суперкласса, которая пишет по одному байту - с гораздо более эффективным вызовом arraycopy )

10
задан Community 23 May 2017 в 11:59
поделиться