Страницы

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

вторник, 28 января 2020 г.

Как отловить любое исключение

#java


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


Ответы

Ответ 1



Поймать все может базовое исключение Throwable.

Ответ 2



Нет таких исключений, которые не ловятся catch. Исключения выше по иерархии чем Exception не рекомендуют ловить(обычно не много вариантов, что при этом можно сделать), но они все равно ловятся catch. Чтобы словить самое верхнее надо ловить Throwable. Но при "При выполнении команды, например, получить элемент 1 из массива размером 0 элементов, вылетит исключение о том, что вышли за пределы и получим поток который остановился." выбрасывается java.lang.ArrayIndexOutOfBoundsException и чтобы его словить достаточно ловить Exception.

Ответ 3



Нашел способ, все исключения наследники java.lang.Throwable. Все работает, исключение выбрасывается, поток не умирает. try{ if(run.run(i, us, adminPermission))runer = true; }catch (java.lang.Throwable e){ e.printStackTrace(); }

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

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