Учитывая следующий класс:рубин бросает ошибку на ноль
require 'rubygems'
require 'oci8'
class DB
attr_reader :handle
def initialize(username, password, db)
@handle = OCI8.new(username,password,db)
#We show an error if we don't have a handle after we try to connect to the DB
raise ArgumentError, "Database connection failed" if @handle.nil
end
end
def main()
myHandle=DB.new('myUser','myPass','myDB')
myHandle.handle().exec('select count(*) from vcas.deviceentitlement where rownum <= 100')
end
main()
мой сценарий с ошибкой:
`initialize': undefined method `nil' for #<OCI8:USER> (NoMethodError)
from /home/ndefontenay/Ruby/purge_entitlement/entitlement.rb:20:in `new'
from /home/ndefontenay/Ruby/purge_entitlement/entitlement.rb:20:in `main'
from /home/ndefontenay/Ruby/purge_entitlement/entitlement.rb:24
Я думал nil
было проверить, является ли объект был создан правильно, но это выглядит например, пытается запустить метод под названием nil
, который не существует. Что происходит?
Вы не указали, какой файл является 'правом.rb'. И, поскольку вы не показываете весь код, поместите номера строк в код так, чтобы он соответствовал описанию в обратном направлении. – sawa
И, как вы думаете, или вы не думаете, что существует метод под названием «nil»? Это звучит как и то, и другое, что противоречит. – sawa