2013-02-01 26 views
7

Ben public function __construct()class bir iç bu kodu kullanıyorum:Neyin var ya da yeni istisna atar?

$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 ve BASE_DB_PASS tanımlanır. Ben İstisnalar ile or inşaat kullanmasına izin

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

Am: aşağıdaki hatayı alıyorum? Bunu nasıl çözebilirim?

+0

'$ bağlantısı = mysql_connect (BASE_DB_HOST, BASE_DB_USER, BASE_DB_PASS) ya da ("veritabanına bağlanmak olabilir." Die) '; –

+0

Bir istisna kullanmak istiyorum. Benzer bir şey mümkün mü? Ve bu neden mümkün değil? – Keelan

+3

'throw' bir ifadedir,' veya 'bir ifadeyle takip edilmek zorundadır. – Barmar

cevap

8

böyle kullanmayı deneyin ve bana bildirin eğer sizin için veya değil- kendi çalışma

<?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(); 
?> 

Referans - http://www.php.net/manual/en/language.exceptions.php#81960

0

bir başka yolu or mantıksal operatörü sonra anonim bir işlevde bir istisna etmektir .

$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

Her yerde bunu yapmak zorundaysanız çok yazmanız yeterlidir ... – Keelan

İlgili konular