2010-12-07 41 views
0

我需要拋出一個異常,如果一個語句返回false,並試圖想出一個簡單,簡潔的方法來做到這一點。有任何想法嗎?我想做以下...如何以簡明的方式有條件地引發異常?

<? 
    // ... 
    oci_execute($stmt) or throw new OracleException($stmt); 
    // ... 
?> 

...但PHP解釋器不會讓我這樣做(語法錯誤),因爲'扔'是一種語言構造。

任何想法?我想要一個非常簡短的班輪(如果沒有請陳述)

回答

0

你不能。但是,我從來沒有真正具有您描述的特殊需求,這導致我懷疑您做了一些有點奇怪的事情。或者至少是非慣用的。程序功能(oci_execute)的出現似乎支持這一點。

我沒有從PHP的Oracle的任何經驗,但你可以使用pdo-bindings?這會給你一個更加面向對象的界面來處理。

+0

我想使用PDO,但它的Oracle支持是高度實驗性的。我只想使用異常,而不是在發生錯誤時檢查錯誤的返回值。 (如果出現錯誤,oci函數會返回false,而不是告訴你有錯誤) – spudly 2010-12-07 14:58:19

+0

在這種情況下,也許你可以創建一個隱藏過程接口並執行拋出的包裝類? – troelskn 2010-12-07 15:33:04

3
<? 
    // ... 
    if (!oci_execute($stmt)) throw new OracleException($stmt); 
    // ... 
?> 

是我想到的一切。但我已經使用PHP不長。現在我已經發現了Perl,這是一件很棒的事情,您可以使用您建議的構造等等。總是值得一試!

+0

這是有效的,但它正是我試圖避免的... – spudly 2010-12-07 14:59:03

0

if !oci_execute($stmt) { throw new OracleException($stmt); } 

工作?