Hi,
I'm writing some scripts on the command line using ActiveRecord, and some interesting (read: confusing) things are happening with the way exceptions are caught and re-raised.
In AbstractAdapter.log (connection_adapters/abstract_adapter.rb:144), Exception is rescued and reraised as an ActiveRecord::StatementInvalid exception. While in most cases I'm sure this is fine, Exception includes things like SystemExit and SignalException, which have nothing to do with invalid SQL. If I'm executing a statement when I send a TERM signal to the process (or call exit(0) when I trap it), if I catch StatementInvalid and deal with it somehow my script is going to continue running.
I just noticed in r8484 the other thing I was going to mention ('TERM' being trapped in transactions.rb) was fixed; that produced similar behavior.
Even changing Exception to StandardException inside AbstractAdapter.log would solve most of what I'm seeing. Does anyone have any thoughts on this?
Thanks,
Taylor