Можно ли игнорировать Exception?

Рейтинг: 0Ответов: 2Опубликовано: 16.02.2015

Здравствуйте.

У меня выскакивает Exception, но роли никакой он не играет для меня, то есть ничего мне не портит.

Выскакивает:

"Exception in thread" AWT-EventQueue-0 "java.lang.StringIndexOutOfBoundsException: String index out of range: -1" на нажаття кнопки backspace.

Вопрос: можно ли оставить данный Exception необработаным? И вообще допустимы ли подобные случаи в проектах?

Ответы

▲ 4Принят

Сначала разберитесь, откуда и почему возникает данное исключение. Дальше, если возможно, поправьте свой код так, чтобы исключение не возникало. Если это вдруг баг стороннего компонента или это исключение действительно не аффектит логику исполнения программы, то его можно "проглотить".

Но вообще необработанные исключения недопустимы. Необработанное исключение в общем случае должно быть перехвачено, залогировано, и, если, это некритическое исключение, работа пользователя должна быть продолжена. Но при этом каждое необработанное исключение -- хороший сигнал для разработчика, что где-то недостаточно эффективно написана обработка ошибок. С каждым таким случаем опять же нужно разбираться и по возможности обрабатывать исключение ближе к месту возникновения.

▲ 2

Собственно, здесь ответ: "String index out of range: -1 на нажаття кнопки backspace." При нажатии backspace позиция курсора должна сместится на -1. Если строка пустая, то из нулевой позиции получится минус первая. Сам AWT я давно не смотрел, но, видимо, ничего страшного. Просто в секции catch не надо ставить e.printStackTrace(), оставь пустой. В IDEA это принято оформлять так:

catch (xxxxException ignored) { }

Именно ignored, тогда она не матюкается на необработанный Exception. Фишка в том, что, при желании, ты можешь ловить этот Exception для собственной реакции на backspace в пустой строке, к примеру, переключить фокус на другое поле.