defmodule Gitea.Error do
@message "A Gitea error occurred"
@reason :unknown
defexception message: @message, reason: @reason
@doc """
message/1 used to raise error with Gitea.Error struct:
raise %Gitea.Error{message: "Gitea error", reason: :gitea_down}
"""
@impl true
def message(%__MODULE__{message: message, reason: reason}) do
"#{message}, reason: #{reason}"
end
@doc """
exception/1 used with:
raise Gitea.Error, message: "gitea error", reason: :gitea_down
"""
@impl true
def exception(args) do
message = args[:message] || @message
reason = args[:reason] || @reason
%__MODULE__{message: message, reason: reason}
end
end