queue — Ошибка выполнения функции в переполнении стека

У меня no0b в PHP, у меня проблема с запуском некоторых функций в php. Я постараюсь быть настолько ясным для меня, чтобы понять.
У меня есть 2 функции:
1. Create_repor1.
2. Создать_отчет2.

Обе функции выполняют разные операции, и порядок всегда должен запускать одну, а затем другую. Эти функции имеют дело с большим количеством информации из SAP, хранящейся в моей базе данных MySQL. И моя проблема в том, что когда вы запускаете первую функцию, возникает проблема и не удается выполнить вторую функцию.

Что мне приходит в голову, так это то, что «крыло» выполняется, когда первая функция завершается ошибкой, я хочу начать выполнение, а второй конец и первый возврат туда, где была сгенерирована ошибка.

function insert_data
take array_sap
limit = cout(array_sap)

while array_sap > = limit
#Begin implementing where we were.
run function_1(array_sap) #If here an error that runs through to 'function_2'.
run function_2(array_sap) #If everything ran well to continue again with 'function_1'.
end

Это возможно?

0

Решение

Это не реально сделать это. Если генерируется ошибка, лучшее, что вы можете сделать, это перехватить ее и запустить вторую функцию в точке сбоя, а затем попытаться запустить ее снова. Вот так:

function Create_repor1(){
$retried = 0;
while ($retried < 3)
{
$retried++;
try
{
// do some stuff
$retried = 3;
}
catch( Exception $e )
{
$retried++;
Delete_report2();
}
}
}

Блок $ retried while необходим для того, чтобы он пробовал только один раз и не более.

1

Другие решения

Try catch может перехватить некоторые фатальные ошибки, предотвратить завершение работы скрипта и продолжить выполнение другого кода.

0

По вопросам рекламы [email protected]