Страницы

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

четверг, 12 декабря 2019 г.

Как обернуть весь класс в throws?

#java #android


Как обернуть весь класс в throws?

Просто у меня в классе много методов и в каждой я делаю try catch, код становиться
здоровым и не читабельным.

Можно ли как-то сделать чтобы try catch был только там, где я создаю объект класса.

Типа 

try{ new MyClas() }


В Java не силен, сильно не ругайтесь
    


Ответы

Ответ 1



Укажите вашему конструктору, что он может выкинуть исключение: public class MyClass { public MyClass() throws Exception { } } Теперь его можно создавать только в блоке try try{ new MyClas(); } catch(Exception e) {} Все остальные методы также можно сопроводить throws Exception и оборачивать их вызовы в try - так вам не надо будет внутри самих методов писать try блоки

Ответ 2



Есть несколько вариантов, если не хотите оборачивать вызовы метода в try catch блок переписать реализацию методов, и бросать из них только проверяемые исключения RuntimeException. воспользоваться библиотекой lombok, а именно аннотацией @SneakyThrows сделать обертку декоратор для вашего класса, где в методах будут блоки обработки исключений, и делегирование вызова исходному методу прокидывать исключения выше, добавляя в сигнатуру метода throws Exception

Ответ 3



Возможно в этом классе переопределяются методы, которые не должны кидать исключения и поэтому приходиться эти исключения обрабатывать в секциях try-catch внутри методов? В этом случае, как было сказано выше лучше использовать делегирование и паттерн Декоратор.

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

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