lib/billdog_eng/error.ex
defmodule BilldogEng.Error do
@moduledoc """
Exception raised when an API request ultimately fails (after retries).
"""
defexception [:message, :status, :code, :body]
@type t :: %__MODULE__{
message: String.t(),
status: integer(),
code: String.t() | nil,
body: term()
}
@doc false
@spec new(String.t(), integer(), String.t() | nil, term()) :: t()
def new(message, status, code \\ nil, body \\ nil) do
%__MODULE__{message: message, status: status, code: code, body: body}
end
end