Страницы

Поиск по вопросам

пятница, 9 ноября 2018 г.

Откуда берется номер строки исключения в Java?

К примеру, наш исходный код выполняет деление на ноль в строке 8. Если собрать jar-файл из этого кода и запустить - ArithmeticException опять скажет нам про строку 8 в нашем исходнике.
Получается, что в .class-файлах сохраняется даже форматирование исходника (java)? Или тут какой-то другой механизм?


Ответ

При компиляции по умолчанию добавляется номер строки в получаемый byte-код
Можно настроить объем debug-информации, попадаемый в генерируемые файлы, с помощью параметра компилятора -g
-g:none Без отладочной информации. -g:lines Только номера строк. -g:lines,source Номера строк и информация об исходном файле. -g:lines,source,vars Номера строк, информация об исходном файле и данные о локальных переменных. -g То же самое, что и -g:lines,source,vars
Значение по умолчанию: -g:lines,source

Комментариев нет:

Отправить комментарий