Как спасти оценку в Ruby?

Вы можете получить значения ключей объекта с помощью Object.values ​​() .

const params = [{"title":"How to code","author":"samuel","category":"categoery","body":"this is the body"}]
params.map(data => {
  console.log(Object.values(data))
})

39
задан George Kagan 6 November 2016 в 19:28
поделиться

2 ответа

Ну, это было легко...

оказывается, что по умолчанию "спасательный" оператор не ловит весь исключения, но только те, которые являются подклассами StandardError. SyntaxError является одноуровневым элементом/кузеном StandardError, не подклассом его, таким образом, спасательный оператор не получает его, если явно не сказали.

, Чтобы иметь спасательное получение блока весь исключения, необходимо изменить код на следующее:

#!/usr/bin/ruby

good_str = "(1+1)"
bad_str = "(1+1"    # syntax error: missing closing paren

begin
    puts eval(good_str)
    puts eval(bad_str)
rescue Exception => exc
    puts "RESCUED!"
end

Обращают внимание на изменения в "спасательной" строке, от "спасения => экскавация" для "спасения Исключения => экскавация"

Теперь, когда Вы выполняете код, Вы получаете желаемые результаты:

2
RESCUED!
44
ответ дан Brent Chapman 27 November 2019 в 02:19
поделиться

Брент уже добрался ответ, который работает , но я рекомендую спасти от самого маленького набора исключений, которые можно сойти с рук. Это удостоверяется, что Вы не случайно пожирание что-то, чем Вы не означаете быть.

Таким образом,

begin
  puts eval(good_str)
  puts eval(bad_str)
rescue SyntaxError => se
  puts 'RESCUED!'
end
50
ответ дан Community 27 November 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: