2015-08-27 14 views
5

लार्वेल प्रोजेक्ट में मुझे दूरस्थ डेटा हटाने के लिए API REST को कॉल करने की आवश्यकता है।गोज़ल कर्ल त्रुटि प्रयास कैच स्टेटमेंट (लैरावेल)

मेरी समस्या यह है कि मेरा कैच स्टेटमेंट गजल अपवाद पकड़ने पर मुझे कोई त्रुटि नहीं मिली है।

try { 
    $client = new \GuzzleHttp\Client(); 
    $request = $client->delete(Config::get('REST_API').'/order-product/'.$id); 
    $status = $request->getStatusCode(); 
} catch (Exception $e) { 
    var_dump($e);exit(); 
} 

अपवाद मेरी पकड़ बयान में Laravel द्वारा catched लेकिन नहीं कर रहा है: मेरे कोड इस प्रकार है। अपवाद guzzle द्वारा throwed है:

GuzzleHttp\Ring\Exception\ConnectException 

यह मेरी लाइन स्क्रिप्ट के 3 और यह मेरी स्क्रिप्ट में catched नहीं करता है में उठाया। क्या आप मुझे गुज़ल अपवाद पकड़ने का एक तरीका दे सकते हैं?

मैं इंगित करना चाहिए कि मैं पहले से ही इन पदों देखा है, लेकिन मैं एक अच्छी प्रतिक्रिया नहीं मिल: How to resolve cURL Error (7): couldn't connect to host? और Catching cURL errors from Guzzle

उत्तर

2

मैं एक ऐसी ही समस्या थी और का उपयोग कर निम्नलिखित चीज़ अपने उदाहरण इनलाइन टिप्पणी का इस्तेमाल किया और दे दिया है आप को समझने के लिए इसे हल।

try { 
    $client = new \GuzzleHttp\Client(); 
    $request = $client->delete(Config::get('REST_API').'/order-product/'.$id); 
    $status = $request->getStatusCode(); 
    if($status == 200){ 
     $response = $response->json(); 

    }else{ 
     // The server responded with some error. You can throw back your exception 
     // to the calling function or decide to handle it here 

     throw new \Exception('Failed'); 
    } 

} catch (\Guzzle\Http\Exception\ConnectException $e) { 
    //Catch the guzzle connection errors over here.These errors are something 
    // like the connection failed or some other network error 

    $response = json_encode((string)$e->getResponse()->getBody()); 
} 

आशा है कि इससे मदद मिलती है!

+0

धन्यवाद यह काम करता है! – jedema

2

हो सकता है कि अपवाद Exception वर्ग का विस्तार नहीं है। आप इसे पसंद को पकड़ने की कोशिश कर सकते हैं:

try { 
    $client = new \GuzzleHttp\Client(); 
    $request = $client->delete(Config::get('REST_API').'/order-product/'.$id); 
    $status = $request->getStatusCode(); 
} catch (\GuzzleHttp\Ring\Exception\ConnectException $e) { 
    var_dump($e);exit(); 
} catch (Exception $e) { 
    // ... 
} 
+0

क्षमा करें लेकिन मैं पहले ही यह कोशिश कर चुका था। मुझे नहीं पता कि यह क्यों काम नहीं करता है। – jedema

1

शायद आप \Exception (रूट नेमस्पेस में) पकड़ने का मतलब रखते हैं, या तो कैच स्टेटमेंट में बैकस्लैश जोड़कर या use Exception कथन।

0

बस नई guzzle अपवाद नाम स्थान

try { 
    $client = new \GuzzleHttp\Client(); 
    $request = $client->delete(Config::get('REST_API').'/order-product/'.$id); 
    $status = $request->getStatusCode(); 
} catch (\GuzzleHttp\Exception\ConnectException $e) { 
    var_dump($e);exit(); 
} 
5

यह

की

बजाय मेरे साथ काम किया जब मैं

इस्तेमाल किया \ GuzzleHttp \ अपवाद \ ConnectException का जवाब अपडेट कर रहा है

\ Guzzle \ Http \ Exception \ ConnectException

संबंधित मुद्दे