最简单的方式是这样的,
def index
begin
@articles = Article.all
rescue Exception => e
puts "error:#{$!} at:#{$@}"
end
end
$! #表示异常信息
$@ #表示异常出现的代码位置
如果我查找一个不存在的 article,比如这样:
def index
begin
@articles = Article.find 10000 # 10000是不存在的
rescue Exception => e
puts "error:#{$!} at:#{$@}"
end
end
这样是可以顺利捕获这个 StandardError 异常。
我现在改成这样,故意少一个“=”:
def index
begin
@articles Article.all #少等号
rescue Exception => e
puts "error:#{$!} at:#{$@}"
end
end
console 报一个syntax error, unexpected tCONSTANT, expecting keyword_end
,但是代码里没法目前没有捕获到,有什么方法可以获取这个异常?
SyntaxError 异常,在 web-console 这个 gem 中是可以捕获的,目前没搞明白,它是通过怎样的方式捕获
rails4 中使用了 web-console,event = ActiveSupport::Notifications::Event.new (*args).payload[:request].env["web_console.exception"] 这种方式是可以获取 SyntaxError