Skip to content

Commit bb63d1f

Browse files
author
marcel corso gonzalez
authored
Merge pull request #59 from mcls/mcls/descriptive-errors
Provide more descriptive error messages when raising exceptions
2 parents d7ae2fe + cb6cf93 commit bb63d1f

3 files changed

Lines changed: 12 additions & 2 deletions

File tree

lib/messagebird/client.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ class ErrorException < StandardError
3838

3939
def initialize(errors)
4040
@errors = errors
41+
message = errors.map(&:message).join(', ')
42+
super(message)
4143
end
4244
end
4345

lib/messagebird/error.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,13 @@
55
module MessageBird
66
class Error < MessageBird::Base
77
attr_accessor :code, :description, :parameter
8+
9+
def message
10+
if parameter
11+
"#{description} (error code: #{code}, parameter: #{parameter})"
12+
else
13+
"#{description} (error code: #{code})"
14+
end
15+
end
816
end
917
end

spec/error_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
.to receive(:request)
1010
.and_return('{"errors":[{"code": 2,"description": "Request not allowed (incorrect access_key)","parameter": "access_key"}]}')
1111

12-
expect { client.message('some-id') }.to raise_error(MessageBird::ErrorException)
12+
expect { client.message('some-id') }.to raise_error(MessageBird::ErrorException, 'Request not allowed (incorrect access_key) (error code: 2, parameter: access_key)')
1313
end
1414

1515
context 'server responds with an invalid HTTP status code' do
@@ -19,7 +19,7 @@
1919

2020
client = MessageBird::Client.new
2121

22-
expect { client.message('some-id') }.to raise_error(MessageBird::ServerException)
22+
expect { client.message('some-id') }.to raise_error(MessageBird::ServerException, 'Unknown response from server')
2323
end
2424
end
2525
end

0 commit comments

Comments
 (0)