Skip to content

Commit 53fcc94

Browse files
committed
Provide more descriptive error messages when raising exceptions
Before this change the MessageBird::ErrorException always return the same message in a stacktrace "MessageBird::ErrorException". Now it's more descriptive and includes the error descriptions received from the JSON payload.
1 parent 85767d7 commit 53fcc94

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
@@ -37,6 +37,8 @@ class ErrorException < StandardError
3737

3838
def initialize(errors)
3939
@errors = errors
40+
message = errors.map { |error| error.message }.join(", ")
41+
super(message)
4042
end
4143
end
4244

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)