我得到了ActiveRecord::StatementInvalid: PG::NotNullViolation: ERROR
。谁能告诉我如何解救PG::NotNullViolation
?
begin
x.save
rescue ActiveRecord::StatementInvalid
puts "I get here"
end
但我想挽救确切的错误,我们有办法吗?
答案 0 :(得分:2)
您可以使用regexp错误消息
来执行此操作begin
x.save
rescue ActiveRecord::StatementInvalid => e
if e.message =~ /^PG::NotNullViolation/
puts 'Error!!!'
end
raise
end
答案 1 :(得分:1)
当邮件不匹配时,您可能希望重新引发异常。否则,没有关于未处理异常的信息,可能会导致问题。
答案 2 :(得分:1)
rescue ActiveRecord::StatementInvalid => e
if e.cause.is_a?(PG:: NotNullViolation)
# do something
end
end