Как использовать StandartError? - PullRequest
2 голосов
/ 01 марта 2012

Когда я пытаюсь выполнить:

#!/usr/bin/env ruby

class WrongNumberOfPlayersError < StandartError ; end
class NoSuchStrategyError < StandartError ; end

я получаю следующую ошибку:

`<main>': uninitialized constant StandartError (NameError)

Я предположил, что мне нужен файл StandartError, поэтому я написал

require 'StandartError'

сразу после строки я указываю свой каталог Ruby.В результате у меня произошла следующая ошибка:

/Users/nevayeshirazi/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- StandartError (LoadError)
from /Users/nevayeshirazi/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from ./part2.rb:2:in `<main>'

Что я делаю не так?Любая помощь очень ценится.

Ответы [ 3 ]

5 голосов
/ 01 марта 2012

В Ruby нет класса StandartError.Вы, вероятно, хотите StandardError .

1 голос
/ 01 марта 2012

Разве это не StandardError вместо StandartError?

1 голос
/ 01 марта 2012

Насколько мне известно, нет класса с именем StandartError.Я думаю, что вы, вероятно, имели в виду "StandardError".Просто напишите это:

class WrongNumberOfPlayersError < StandardError; end
class NoSuchStrategyError < StandardError; end

Кстати, классно делать свои собственные классы исключений, но это не обязательно.Вы можете просто написать это в своем коде, когда произойдет ошибка:

raise "Wrong number of players!"
raise "No such strategy!"
...