2012-11-27 11 views
6

मान लीजिए कि मैं कोड का निम्न भाग करते हैं।PHPseclib के साथ असंगत त्रुटियों को कैसे पकड़ें?

इस परीक्षण के लिए, मैं आईपी सर्वर बदलने त्रुटि संदेश की नकल करने के लिए। नीचे आईपी मौजूद नहीं है इसलिए Unhandled Exception संदेश है: Cannot connect to 10.199.1.7. Error 113. No route to host

यह PHP कोड के साथ एक बदसूरत स्क्रीन प्रदर्शित करता है। क्या यह त्रुटि पकड़ना संभव है?

try { 
     $ssh = new Net_SSH2('10.199.1.7');   
    if (!$ssh->login('deploy', $key)) { 
     throw new Exception("Failed login"); 
    } 
} catch (Exception $e) { 
    ??? 
} 

उत्तर

11

पुस्तकालय के माध्यम से देखा।

user_error('Connection closed by server', E_USER_NOTICE); 

यह त्रुटियों को ट्रिगर करता है। आप http://php.net/manual/en/function.set-error-handler.php

उदा का उपयोग कर उन त्रुटियों को संभाल कर सकते हैं

// Your file.php 
$ssh = new Net_SSH2('10.199.1.7');   
$ssh->login('deploy', $key); 

// bootstrap.php 
// This will catch all user notice errors!!! 
set_error_handler ('errorHandler', E_USER_NOTICE) 

function errorHandler($errno, $errstr, $errfile, $errline) { 
    echo 'Error'; 
    // Whatever you want to do. 
} 
+0

इसे समझने में कठिन समय लग रहा है। मैं उपरोक्त मेरे मौजूदा कोड में इसे लागू करने के बारे में कैसे जाउंगा? कार्यान्वयन को शामिल करने के लिए – luckytaxi

+0

अपडेट किया गया। –

+0

तो मूल रूप से 'file.php' अंदर' boostrap.php' फ़ाइल को शामिल और यह काम करना चाहिए? – luckytaxi

0

आप आप के सामने @ उपयोग कर सकते हैं कॉल कार्य करते हैं। @ operator

+4

@ का उपयोग करना हमेशा एक बुरा विचार है! –