o protocol.rb: ProtocolError can take data

o  http.rb:  raise exception with response


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
aamine 2000-06-09 07:53:59 +00:00
parent eb4c6c241d
commit fdd3d8551f
2 changed files with 31 additions and 4 deletions

View File

@ -54,6 +54,20 @@ module Net
If called as iterator, give a part String of entity body.
Note:
If status is not 2xx(success), ProtocolError exception is
raised. At that time, you can get Response object from
execption object. (same in head/post)
ex.
begin
head, body = http.get(...)
rescue ProtoRetriableError
response = $!.data
...
end
: head( path, header = nil )
get only header from "path" on connecting host.
"header" is a Hash like { 'Accept' => '*/*', ... }.
@ -375,7 +389,9 @@ All "key" is case-insensitive.
end
def value
error! unless SuccessCode === self
unless SuccessCode === self then
error! self
end
end
end

View File

@ -68,7 +68,7 @@ Object
class Protocol
Version = '1.1.20'
Version = '1.1.21'
class << self
@ -295,8 +295,8 @@ Object
attr_reader :code_type, :code, :message
alias msg message
def error!
raise @code_type.error_type, @code + ' ' + Net.quote(@message)
def error!( data = nil )
raise code_type.error_type.new( code + ' ' + Net.quote(msg), data )
end
end
@ -312,6 +312,17 @@ Object
class ProtoRetriableError < ProtocolError; end
ProtocRetryError = ProtoRetriableError
class ProtocolError
def initialize( msg, data )
super msg
@data = data
end
attr :data
end
class Code