From a9ae33bb47882623c8b276eeb78f83f212f85ad3 Mon Sep 17 00:00:00 2001 From: Bob Aman Date: Thu, 22 Sep 2011 12:21:05 +0300 Subject: [PATCH] Added better handling for errors. --- lib/google/api_client.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/google/api_client.rb b/lib/google/api_client.rb index e12a9d637..ceb18edb8 100644 --- a/lib/google/api_client.rb +++ b/lib/google/api_client.rb @@ -594,10 +594,13 @@ module Google def execute!(*params) result = self.execute(*params) status, _, _ = result.response - if result.data.respond_to?(:error) + if result.data.respond_to?(:error) && + result.data.error.respond_to?(:message) # You're going to get a terrible error message if the response isn't # parsed successfully as an error. - error_message = result.data.error + error_message = result.data.error.message + elsif result.data['error'] && result.data['error']['message'] + error_message = result.data['error']['message'] end if status >= 400 && status < 500 raise ClientError,