aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/errors.rb
diff options
context:
space:
mode:
authorJeremy Daer <jeremydaer@gmail.com>2015-11-03 08:33:46 -0700
committerJeremy Daer <jeremydaer@gmail.com>2015-11-03 08:33:46 -0700
commite670611e6002039231a24d547f9a6e053940fb16 (patch)
tree7acbeba7f649906f8821d7a97412b453cd2c8f3a /activerecord/lib/active_record/errors.rb
parente4000e3aa78b06bdda39ba0a4d5f1cb5f7d21609 (diff)
parent266455cf25aba942b8717ceb0269d66f719b5696 (diff)
downloadrails-e670611e6002039231a24d547f9a6e053940fb16.tar.gz
rails-e670611e6002039231a24d547f9a6e053940fb16.tar.bz2
rails-e670611e6002039231a24d547f9a6e053940fb16.zip
Merge pull request #18774 from yuki24/deprecate-original-exception-infavor-of-cause
Deprecate exception#original_exception in favor of exception#cause
Diffstat (limited to 'activerecord/lib/active_record/errors.rb')
-rw-r--r--activerecord/lib/active_record/errors.rb16
1 files changed, 12 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/errors.rb b/activerecord/lib/active_record/errors.rb
index 533c86a6a9..1cd2c2ef8c 100644
--- a/activerecord/lib/active_record/errors.rb
+++ b/activerecord/lib/active_record/errors.rb
@@ -94,13 +94,21 @@ module ActiveRecord
# Superclass for all database execution errors.
#
- # Wraps the underlying database error as +original_exception+.
+ # Wraps the underlying database error as +cause+.
class StatementInvalid < ActiveRecordError
- attr_reader :original_exception
def initialize(message = nil, original_exception = nil)
- @original_exception = original_exception
- super(message)
+ if original_exception
+ ActiveSupport::Deprecation.warn("Passing #original_exception is deprecated and has no effect. " \
+ "Exceptions will automatically capture the original exception.", caller)
+ end
+
+ super(message || $!.try(:message))
+ end
+
+ def original_exception
+ ActiveSupport::Deprecation.warn("#original_exception is deprecated. Use #cause instead.", caller)
+ cause
end
end