我希望这会抛出异常并死掉:
begin
if meridian != "AM" and meridian != "PM"
rescue
puts MESSAGE
end
end
我搜索了很多,但似乎没有任何效果。如果失败,我希望if
语句抛出异常。
我是以错误的方式看待这个吗?
答案 0 :(得分:4)
试试这个:
raise "message" unless ["AM", "PM"].include? meridian
答案 1 :(得分:1)
您还可以使用正则表达式:
raise 'message' unless meridian =~ /\A(a|p)m\z/i
这与案例无关,也适用于符号。
答案 2 :(得分:1)
恕我直言,你应该使用fail
代替加注,以获取可读性问题并查看以下链接。
fail "message" unless ["AM", "PM"].include? meridian
答案 3 :(得分:0)
删除begin
周围的rescue
/ end
/ if
或将puts MESSAGE
替换为raise "some_message_here"
答案 4 :(得分:0)
您不需要begin
/ rescue
,因为您的if
语句没有遇到任何错误。代替:
raise "message" if meridian != "AM" and meridian != "PM"
答案 5 :(得分:0)
这很有用
MESSAGE = "Check your formatting"
if meridian != "AM" and meridian != "PM"
abort( MESSAGE )
end