Действительно, IDE не имеет к этому никакого отношения. И вы можете перефразировать это мнение, так как иногда полезная информация не всегда является последней выполненной строкой, но где-то глубже в трассировке стека (например: недопустимое значение передается методу, вплоть до n-го уровня, где происходит исключение. )
Eclipse не может изменить это поведение, так как это поведение JVM во время выполнения; когда исключение не перехватывается, System.err
используется для вывода трассировки стека. Вы можете изменить это, заменив поток вывода ошибок .
PrintWriter
, который вы установили, может сохранить оригинальную копию System.err
и просто отбросить все, что вас не волнует (например, что-либо, совпадающее с "^\s*(java(x?)\.).*
" или что-то в этом роде). Но обходной путь не стоит проблем ,
Лучшим решением было бы перехватывать и обрабатывать ваши исключения и вместо этого выводить что-то полезное. API Java довольно явный, когда какой-то метод вызывает исключение. Там не должно быть ничего удивительного.
Или другим решением было бы вообще избежать исключений и порадоваться, что Java напечатает для начала очень полезную трассировку стека и поможет вам отладить ваше приложение. Многие языки на самом деле этого не делают (или просто не так хороши). Если и когда вы развернете приложение на клиенте, вы на самом деле будете рады, что пользователь отправляет вам полную трассировку стека, а не только одну строку, где произошло исключение.