Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2016, 13:33   #1
Krabs_w
Новичок
Джуниор
 
Регистрация: 16.10.2016
Сообщений: 1
По умолчанию Возвращение в try после catch

Прошу Вашей помощи, голову уже сломал.
Есть код, в котором появляется исключение. Нужно, чтобы после появления исключения, код в блоке try снова повторился.
Как происходит сейчас: блок catch ловит исключение, в итоге исключение передаётся выше по коду, код заканчивается, потому что в верхнем блоке catch есть завершение работы.
Но нужно, чтобы метод продолжил работу после записи исключения в файл,

Код:
try {			 
 PMDataList_THolder pmDataList = new PMDataList_THolder();
 PMDataIterator_IHolder pmIt = new PMDataIterator_IHolder();
 
 perfMng.getAllCurrentPMData(pmTPSelectList, pmParameters, 500, pmDataList, pmIt);
			 
if(pmDataList.value != null) {
    boolean isItr = true;			
		while(isItr) {
				if(pmDataList.value.length == 0) break;
						
					for(int c=0; c<pmDataList.value.length; c++)
							printPmData(meName,  pmDataList.value[c]);
						
				    if(pmIt.value==null) {
							isItr = false;
							break;
					}
 
					isItr = pmIt.value.next_n(100, pmDataList); //здесь возникает исключение Server-side Exception: IT_POA:SERVANT_NOT_FOUND
		}
				if(pmIt.value != null ){
						pmIt.value.destroy();
					}
				}	 
		 }
 
		 catch(Exception ex){	
			 String pmDataErr = ""; 
			 if(s.logger.isDebugEnabled()) s.logger.debug(meName +ex.toString());
			 if (s.errLog.isDebugEnabled()) s.errLog.debug(meName +ex.toString());
			
			 pmDataErr = "getAllCurrentPMData_Error" + meName + "|" + ex.toString();
			 pwpmDataErr.write(pmDataErr + "/n");
		 }
Пробовал:
обернуть try/catch в while(true), а в конце try поставь break. Не помогло
Krabs_w вне форума Ответить с цитированием
Старый 16.10.2016, 14:08   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Выносите этот код в функцию. Вызов этой функции оборачивайте в цикл с try и если надо выходите или перезапускайте.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возвращение значений массива, после рекурсионного вызова Весбат Помощь студентам 4 11.12.2014 16:38
throw, try, catch (С++) mego4el Помощь студентам 2 31.05.2011 18:39
try - catch kiferv Visual C++ 1 04.05.2011 23:13
try ... catch CBeginner Общие вопросы C/C++ 3 23.06.2008 07:12
try... catch Kocapb Общие вопросы C/C++ 6 19.12.2007 04:30