2014-09-18 117 views
0

我是PHP中的no0b,我在php中运行一些函数时出现问题。我会尽力让我明白。
我有2个功能:
1. Create_repor1。
2. Create_report2。
在PHP中执行函数的错误

这两个函数执行不同的操作,顺序必须始终运行一个,然后运行另一个。这些函数处理来自SAP的大量信息,并将其存储在我的MySQL数据库中。而我的问题是,当你运行第一个功能时出现问题,并且无法执行第二个功能。

我想到的是,当第一个函数失败时,wing会被执行,我想开始运行,第二个结束,第一个返回到错误产生的地方。

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 

这可能吗?

+1

因为你没有详细说明导致函数失败的“问题”,我怀疑我们能够给你任何真正的方向。为什么不提供真实的代码 – Ohgodwhy 2014-09-18 16:08:53

+0

你的意思是错误,而不是显示伪代码?如果function1引发异常,则可以使用try-catch块。 – Sepultura 2014-09-18 16:09:08

+0

请您澄清一下 - 即使第一个函数产生了错误,您是否还想运行第二个函数?或者如果第一个函数导致错误,您是否想跳过第二个函数? – 2014-09-18 16:10:11

回答

1

这是不可能的。如果发生错误,您可以做的最好的方法就是抓住它并在故障点运行第二个功能,然后尝试再次运行它。像这样:

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

$重试时,块是必要的,让它只能尝试一次,没有更多。

+0

谢谢,我认为这可以帮助我。我会尝试。 – Annon 2014-09-18 16:25:05

0

Try catch能够捕获一些致命错误,防止脚本终止并继续执行其他代码。