ActiveRecord exception handling

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

StandardError, rather, not StandardException.