2019 সালের হিসাবে আমি এখানে উপরের উত্তরগুলি এবং গুজল ডক্স থেকে ব্যতিক্রমটি পরিচালনা করতে, প্রতিক্রিয়াটির বডি, স্ট্যাটাস কোড, বার্তা এবং অন্যান্য কখনও কখনও মূল্যবান প্রতিক্রিয়া আইটেমগুলি বিশদভাবে বর্ণনা করেছি ।
try {
/**
* We use Guzzle to make an HTTP request somewhere in the
* following theMethodMayThrowException().
*/
$result = theMethodMayThrowException();
} catch (\GuzzleHttp\Exception\RequestException $e) {
/**
* Here we actually catch the instance of GuzzleHttp\Psr7\Response
* (find it in ./vendor/guzzlehttp/psr7/src/Response.php) with all
* its own and its 'Message' trait's methods. See more explanations below.
*
* So you can have: HTTP status code, message, headers and body.
* Just check the exception object has the response before.
*/
if ($e->hasResponse()) {
$response = $e->getResponse();
var_dump($response->getStatusCode()); // HTTP status code;
var_dump($response->getReasonPhrase()); // Response message;
var_dump((string) $response->getBody()); // Body, normally it is JSON;
var_dump(json_decode((string) $response->getBody())); // Body as the decoded JSON;
var_dump($response->getHeaders()); // Headers array;
var_dump($response->hasHeader('Content-Type')); // Is the header presented?
var_dump($response->getHeader('Content-Type')[0]); // Concrete header value;
}
}
// process $result etc. ...
Voila। আপনি স্বতন্ত্রভাবে পৃথক করা আইটেমগুলিতে প্রতিক্রিয়াটির তথ্য পাবেন।
পার্শ্ব নোট:
সঙ্গে catch
দফা আমরা উত্তরাধিকার শৃঙ্খল পিএইচপি রুট ব্যতিক্রম বর্গ ধরা
\Exception
যেমন মদ্যপানোত্সব কাস্টম ব্যতিক্রম এটা প্রসারিত।
লারাভেল বা এডাব্লুএস এপিআই পিএইচপি এসডিকে যেমন গুজলটি হুডের নীচে ব্যবহার করা হয় সেই ক্ষেত্রে ব্যবহারের ক্ষেত্রে এটি কার্যকর হতে পারে যাতে আপনি আসল গুজল ব্যতিক্রমটি ধরতে পারবেন না।
এই ক্ষেত্রে, গুজল ডক্সে বর্ণিত ব্যতিক্রম শ্রেণিটি নাও হতে পারে (উদাঃ GuzzleHttp\Exception\RequestException
গুজলের মূল ব্যতিক্রম হিসাবে)।
সুতরাং আপনি ধরতে হবে \Exception
পরিবর্তে হবে তবে মনে রাখবেন এটি এখনও গুজল ব্যতিক্রম শ্রেণির উদাহরণ।
যদিও যত্ন সহ ব্যবহার করুন। এই মোড়কগুলি গুজল $e->getResponse()
অবজেক্টের আসল পদ্ধতিগুলি উপলভ্য নয়। এই ক্ষেত্রে, আপনাকে মোড়কের আসল ব্যতিক্রম উত্স কোডটি দেখতে হবে এবং গুজল ব্যবহার না করে স্থিতি, বার্তা ইত্যাদি কীভাবে পাবেন তা খুঁজে বের করতে হবে$response
পদ্ধতিগুলি ।
আপনি যদি গুজলকে সরাসরি নিজের কাছে কল করেন তবে আপনি তাদের ব্যবহারের অবস্থার সাথে সম্মতি জানিয়ে তাদের ব্যতিক্রম ডক্সেGuzzleHttp\Exception\RequestException
বর্ণিত অন্য যে কোনওটিকে ধরতে পারেন ।