2014-09-18 114 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能夠捕獲一些致命錯誤,防止腳本終止並繼續執行其他代碼。