Обработка исключений продолжается в случае ошибки, а затем перебрасывается - PullRequest
0 голосов
/ 28 сентября 2011
     //Assume list1 and list2 are populated with states as 2
    foo (List<Class1> list1, List <Class1> list2) {

         boolean error = false;
          try {
             operate on list1
         } catch (Exception e) {
              error = true;
             //Modify list1 objects to state 1
        }

          try {
             operate on list2
         } catch (Exception e) {
              error = true;
             //Modify list2 objects to state 1
         }

        //What are the problems and what is the best practice for this
         if (error)
             throw new Exception(…);  //How should i really rethrow the exception

    }

Ответы [ 2 ]

2 голосов
/ 28 сентября 2011

Главное улучшение, которое я бы сделал, - хранить все возникающие исключения и делать их доступными как-то где-нибудь. В остальном вроде нормально.

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

0 голосов
/ 28 сентября 2011

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

Не ясно, почему вы хотите это сделать, но я сделал страннее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...