Ruby在脚本中隐藏异常输出

时间:2012-10-12 05:55:47

标签: ruby

我有以下代码:

#!/usr/bin/ruby

require 'socket'

server = '221.186.184.68'

if ( server =~ /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ )
        hostname = Socket.gethostbyaddr(server.split(".").map(&:to_i).pack("CCCC")).first
        puts hostname
end

好吧,但是当我输入一个不反转的IP地址时,我得到了一个错误:

i.rb:8:in `gethostbyaddr': host not found (SocketError)
        from i.rb:8

如何隐藏讯息?谢谢!

1 个答案:

答案 0 :(得分:2)

使用异常处理

#!/usr/bin/ruby

require 'socket'

server = '221.186.184.68'

begin
    if ( server =~ /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ )
        hostname = Socket.gethostbyaddr(server.split(".").map(&:to_i).pack("CCCC")).first
        puts hostname
    end
rescue => err
   #puts "I don't want to print this #{err.message}. Hence commented"
end