Вернитесь в блок try try. Correcty? - PullRequest
0 голосов
/ 10 мая 2018

Можно ли сделать что-то подобное?:

try {
...
} catch (exception){

    return; // this is most important thing here. In catch block only "return"

}

Могу ли я обработать исключение таким способом - использовать только «return;»? Работает нормально, но хотелось бы знать, правильно ли это?

Ответы [ 4 ]

0 голосов
/ 10 мая 2018

если вы делаете что-то подобное

public void someMethod(){
    try{
    ...
    } catch (Exception e) {
        return;
    }
}

Вы теряете свое исключение. Это плохая практика, потому что если что-то пойдет не так - вы даже не сможете понять, что происходит не так. Лучшие способы

  • распечатать сообщение об ошибке в логах
  • сбросить это исключение или пользовательское исключение и обработать его на следующих уровнях
0 голосов
/ 10 мая 2018

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

try {
    return service.getData();
} catch (SocketTimeoutException ex) {
    logTimeout(ex);
    return getCachedData();
}
0 голосов
/ 10 мая 2018

Это правильный синтаксис, но в соответствии со стандартами Java-кодирования мы не должны глотать исключения, а обрабатывать их в блоке catch или перебрасывать их с соответствующим сообщением

0 голосов
/ 10 мая 2018

Таким образом, вы игнорируете Exception, действительно ли хотите, чтобы вы хотели? Все зависит от вашего контекста - это может быть безопасно (я сомневаюсь, но это ваш код). Как правило, когда возникают некоторые исключения - вы должны реагировать не просто return ing, а журналом, дефолтом (редко хорошим вариантом), повторной попыткой и т. Д.

...