В рубине я не совсем уверен, как обращаться с нулевыми объектами.Ruby - правильная обработка нулевых объектов
Например, я следующее:
begin
sp = SerialPort.new(@serial_device, @serial_bps, @serial_par, @serial_bits, SerialPort::NONE)
tcp = TCPSocket.new(@host, @port)
if (sp)
sp.print(command)
sp.close
elsif
tcp.print(command)
tcp.close
end
say siri_output
rescue
pp $!
puts "Sorry, I encountered an error: #{$!}"
ensure
request_completed
end
Проблема заключается в том, что первый объект возвращает ошибку, связанную с:
No route to host - connect(2)
Что является правильным, потому что TCP не подключен duh. Поэтому я бы хотел, чтобы вместо этого использовался следующий объект.
Есть ли способ сделать это, не используя определенные Исключения, мне было интересно, есть ли лучший способ сделать то, что я за каким-то образом.
Не могли бы вы использовать функцию, чтобы проверить доступность того, что делает соединения? –
obj.nil? - рубиновый способ проверки объекта для nil – Fivell