Gestion des erreurs dans la AWS SDK pour PHP version 3 - AWS SDK pour PHP

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion des erreurs dans la AWS SDK pour PHP version 3

Gestion des erreurs synchrones

Si une erreur se produit lors de l'exécution d'une opération, une exception est levée. Aussi, si vous devez gérer des erreurs dans votre code, utilisez des blocs try/catch autour de vos opérations. Le kit SDK lève des exceptions spécifiques au service en cas d'erreur.

L'exemple suivant repose sur Aws\S3\S3Client. Si une erreur se produit, l'exception levée sera du type Aws\S3\Exception\S3Exception. Toutes les exceptions spécifiques au service levées par le kit SDK sont dérivées de la classe Aws\Exception\AwsException. Cette classe contient des informations utiles sur l'échec, y compris l'ID de la requête, le code d'erreur et le type d'erreur. Notez que pour certains services qui prennent cela en charge, les données de réponse sont converties dans une structure de tableau associatif (similaire à des objets Aws\Result), à laquelle il est possible d’accéder comme à un tableau associatif PHP normal. La méthode toArray() renvoie tous ces données, si elles existent.

Importations

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException; use Aws\S3\Exception\S3Exception;

Exemple de code

// Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk([ 'region' => 'us-west-2' ]); // Use an Aws\Sdk class to create the S3Client object. $s3Client = $sdk->createS3(); try { $s3Client->createBucket(['Bucket' => 'my-bucket']); } catch (S3Exception $e) { // Catch an S3 specific exception. echo $e->getMessage(); } catch (AwsException $e) { // This catches the more generic AwsException. You can grab information // from the exception using methods of the exception object. echo $e->getAwsRequestId() . "\n"; echo $e->getAwsErrorType() . "\n"; echo $e->getAwsErrorCode() . "\n"; // This dumps any modeled response data, if supported by the service // Specific members can be accessed directly (e.g. $e['MemberName']) var_dump($e->toArray()); }

Gestion asynchrone des erreurs

Aucune exception n'est levée lors de l'envoi de requêtes asynchrones. Vous devez utiliser la méthode then() ou otherwise() de la promesse renvoyée pour recevoir le résultat ou l'erreur.

Importations

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException; use Aws\S3\Exception\S3Exception;

Exemple de code

//Asynchronous Error Handling $promise = $s3Client->createBucketAsync(['Bucket' => 'my-bucket']); $promise->otherwise(function ($reason) { var_dump($reason); }); // This does the same thing as the "otherwise" function. $promise->then(null, function ($reason) { var_dump($reason); });

Vous pouvez également « débloquer » la promesse et forcer la levée de l'exception.

Importations

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException; use Aws\S3\Exception\S3Exception;

Exemple de code

$promise = $s3Client->createBucketAsync(['Bucket' => 'my-bucket']);
//throw exception try { $result = $promise->wait(); } catch (S3Exception $e) { echo $e->getMessage(); }