ruby练习题

Python017

ruby练习题,第1张

#对于题目的该类具有方法部分,感觉有些歧义,看下如下代码是否合题目要求

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