httpx/lib/httpx/errors.rb

53 lines
1.0 KiB
Ruby

# frozen_string_literal: true
module HTTPX
Error = Class.new(StandardError)
UnsupportedSchemeError = Class.new(Error)
TimeoutError = Class.new(Error) do
attr_reader :timeout
def initialize(timeout, message)
@timeout = timeout
super(message)
end
def to_connection_error
ex = ConnectTimeoutError.new(@timeout, message)
ex.set_backtrace(backtrace)
ex
end
end
TotalTimeoutError = Class.new(TimeoutError)
ConnectTimeoutError = Class.new(TimeoutError)
ResolveError = Class.new(Error)
NativeResolveError = Class.new(ResolveError) do
attr_reader :connection, :host
def initialize(connection, host, message = "Can't resolve #{host}")
@connection = connection
@host = host
super(message)
end
end
HTTPError = Class.new(Error) do
attr_reader :response
def initialize(response)
@response = response
super("HTTP Error: #{@response.status}")
end
def status
@response.status
end
end
MisdirectedRequestError = Class.new(HTTPError)
end