# Error Handling Exampleslibrary(paws)s3_svc<-s3()# Attempt a request that will certainly fail and catch the error object.b1<-tryCatch(s3_svc$list_objects_v2(Bucket="not_a_bucket_alskfj",MaxKeys=2),error=function(e)e)b1$message# > "NoSuchBucket (HTTP 404). The specified bucket does not exist"# Look at the details of the errorattributes(b1)# Output:#> $names#> [1] "message"#> $class#> [1] "http_404" "http_400" "http_error" "error" "condition"#> $status_code#> [1] 404#>#> $error_response#> $error_response$Code#> [1] "NoSuchBucket"#> $error_response$Message#> [1] "The specified bucket does not exist"#> $error_response$BucketName#> [1] "not_a_bucket_alskfj"#> $error_response$RequestId#> [1] "3568524444199D04"#> $error_response$HostId#> [1] "P2te81nv444441hoXsdKxUEFzwhB+J4444499APIKGLKpn8X/LaOioBS/a229v93uYOMXkFehIc="# Retry after a 1 second wait on 50X errors:response<-NULLattempt_count<-0while(is.null(response)|inherits(response,"http_500")|attempt_count<3){attempt_count<-attempt_count+1response<-tryCatch(s3_svc$list_objects_v2(Bucket="this-is-a-real-bucket",MaxKeys=2),error=function(e)e)if(inherits(response,"http_500")&attempt_count<3){print(paste0("Request failed with 500 error and message: ",response$message))print("Retrying after 1 second sleep")Sys.sleep(1)}elseif(inherits(response,"error")){# Re-raise the error object on non-500 error or 500 error with maxed retriesstop(response)}}