class Switch
#可读写属性
attr_accessor :type #交换机类型
attr_accessor :ipAddress #IP地址
attr_accessor :portld #端口号
attr_accessor :boardld #单板
attr_accessor :port #接口
attr_accessor :softwareVersion #软件版本
#初始化属性
def initialize(type="TestSwitch",ipAddress="127.0.0.1",portld=80,boardld="TestBoard",port=1,softwareVersion="V 1.0")
@type=type
@ipAddress=ipAddress
@portld=portld
@boardld=boardld
@port =port
@softwareVersion=softwareVersion
end
#方法:连接设备
def login(ip)
@ipAddress=ip
if @ipAddress == "192.168.1.1"
return true
else
return false
end
end
#方法:断开连接设备
def unlink(ip)
if ip == @ipAddress
puts "断开连接成功"
else
return false
end
end
#方法:下发命令
def send(order)
raise "Something Wrong" if order == "vlan 55555"
rescue => err
print "指令错误,出错指令为:"
ensure
puts order
end
end
#创建交换机类型为S9300的交换机,IP地址为192.168.1.1,端口号为23
mySwitch = Switch.new("S9300","192.168.1.1",23)
#使用“连接设备”方法连接设备
mySwitch.login("192.168.1.2")
#下发指令
mySwitch.send("display device")
mySwitch.send("vlan 55555")
#使用“断开设备连接”方法断开设备连接
mySwitch.unlink("192.168.1.2")
ruby中异常的抛出是使用raise方法raise "Some Wrong" #抛出一个消息为"Some wrong"的RuntimeError
raise只是抛出了异常消息,要捕获异常,则使用rescue
rescue =>err #捕获异常,将异常保存为一个变量err
#方法:下发命令
def send(order)
raise "Something Wrong" if order == "vlan 55555" #当指令为order等于"vlan 55555"时,抛出一个消息为"Some wrong"的异常
rescue =>err #捕获异常
print "指令错误,出错指令为:"#当发生异常的时候,打印出错的指令
ensure #ensure后面的代码一定会被执行
puts order
end