Я думаю, что, поскольку System.out
и System.err
являются экземплярами PrintStream
, была предоставлена более упрощенная обработка ошибок. Вероятно, это было, как упоминали другие авторы, чтобы сгладить путь для тех, кто переходил с C / C ++ примерно в 1995 году. Когда был добавлен API Reader / Writer, PrintWriter
был создан для параллельного существования PrintStream
.
Одним из приложений, где такое поведение крайне желательно, является ведение журнала. Ведение журнала является вспомогательным для более крупного приложения. Как правило, если регистрация не удается, не нужно, чтобы все приложение не сработало. Таким образом, для System.err
имеет смысл, по крайней мере, игнорировать исключения.