Несколько дней назад я понял, что PrintWriter (а также PrintStream) никогда не бросать IOException при записи, очистке или закрытии.
Вместо этого он устанавливает внутренний флаг (trouble=true
) при возникновении ошибки.
Невозможно получить точное исключение, но только , если было какое-то исключение (checkError()).
Мой вопрос: зачем нужно такое поведение? Разве это не плохой дизайн API?