Ошибка с исключением из Ruby - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть массив, определенный так,

result = ["true","false","false","false"]

В моем коде я перебираю массив и вызываю исключение при обнаружении ложного

begin  result.each  do |method| 
           raise  if (method == false) {
           rescue Exception => Form_Validation_Failure
                  puts "fail!"
           end } 
       end

При выполнении кода возникает ошибка. Это правильный путь для исключения и исключения в Ruby? Может ли кто-нибудь помочь с этим, пожалуйста.

ура!

Ответы [ 2 ]

4 голосов
/ 08 ноября 2011

Помимо использования строк в вашем массиве и константы false в вашем сравнении, я вижу спасение внутри фигурных скобок.

Я думаю, что форма кода, которую вы ищете:

>> result = [true,false,true,false]
=> [true, false, true, false]
>>
?> result.each do |method|
?>   begin
?>     raise if not method   # preferred to method == false
>>     puts "ok"
>>   rescue
>>     puts "fail!"
>>   end
>> end
ok
fail!
ok
fail!
=> [true, false, true, false]
0 голосов
/ 08 ноября 2011

В сравнении вы должны использовать строку:

...
raise if (methods == "false") {
...

В Ruby есть истинные объекты для всего и вся, поэтому есть разница между строкой со значением "false" и логическим значением false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...