2013-02-01 24 views
7

मैं class की public function __construct() एक के अंदर इस कोड का उपयोग कर रहा हूँ:नया अपवाद क्या है या फेंकना है?

$this->mConnection = mysql_connect(BASE_DB_HOST,BASE_DB_USER,BASE_DB_PASS) or throw new Exception("Couldn't connect to database."); 

BASE_DB_HOST, BASE_DB_USER और BASE_DB_PASS परिभाषित कर रहे हैं।

Parse error: syntax error, unexpected T_THROW in /home/... on line 6

Am मैं अपवाद के साथ or निर्माण का उपयोग करने की अनुमति नहीं: मैं निम्नलिखित त्रुटि मिलती है? मैं इसे कैसे काम कर सकता हूं?

+0

'$ कनेक्शन = mysql_connect (BASE_DB_HOST, BASE_DB_USER, BASE_DB_PASS) या मरो (" डेटाबेस से कनेक्ट नहीं किया जा सका। ")'; –

+0

मैं एक अपवाद का उपयोग करना चाहता हूँ। क्या कुछ ऐसा ही संभव है? और यह क्यों संभव नहीं है? – Keelan

+3

'throw' एक कथन है, 'या' अभिव्यक्ति के बाद पालन करने की आवश्यकता है। – Barmar

उत्तर

8

इस तरह उपयोग करने का प्रयास और मुझे पता है अगर आप के लिए या नहीं अपने काम

<?php 
function throwException() { 
    throw new Exception("Couldn't connect to database."); 
} 

$this->mConnection = mysql_connect(BASE_DB_HOST,BASE_DB_USER,BASE_DB_PASS) OR throwException(); 
?> 

संदर्भ - http://www.php.net/manual/en/language.exceptions.php#81960

0

एक और तरीका है or तार्किक ऑपरेटर के बाद एक गुमनाम समारोह में एक अपवाद फेंक करने के लिए है ।

$this->mConnection = mysql_connect(BASE_DB_HOST,BASE_DB_USER,BASE_DB_PASS) or call_user_func(function() { throw new Exception("Couldn't connect to database."); }); 
+0

यदि आपको हर जगह ऐसा करना है तो यह बहुत सारे टाइपिंग है ... – Keelan