关于ruby:在Rails中存储StandardError的异常类名

Store Exception Class Name for StandardError in Rails

我已经定义了几个从StandardError继承的自定义异常类,如下所示:

1
class InvalidPage < StandardError;end

如果引发此异常,我想将其解救并将其存储到我的数据库中以供参考。 到目前为止,我保存了它的消息和回溯,但我似乎也无法保存其名称(InvalidPage)。 我试过了:

1
2
3
InvalidPage.class
InvalidPage.class.name
InvalidPage.name

但以上都不适合我。

如何访问和保存异常名称以及消息和回溯?


你可以这样做:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class InvalidPage < StandardError; end

begin
  raise InvalidPage

rescue InvalidPage => error      
  p error.class.to_s
  p error.backtrace

end

# Output
#"InvalidPage"
# ["file.rb:4:in `<main>'"]