instance method
translate_exception
Ruby on Rails 6.1.7.10
Since v3.0.20 PrivateSignature
translate_exception(exception, message:, sql:, binds:)
No documentation comment.
Parameters
-
exceptionreq -
messagekeyreq -
sqlkeyreq -
bindskeyreq
Source
# File activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb, line 468
def translate_exception(exception, message:, sql:, binds:)
return exception unless exception.respond_to?(:result)
case exception.result.try(:error_field, PG::PG_DIAG_SQLSTATE)
when nil
if exception.message.match?(/connection is closed/i)
ConnectionNotEstablished.new(exception)
else
super
end
when UNIQUE_VIOLATION
RecordNotUnique.new(message, sql: sql, binds: binds)
when FOREIGN_KEY_VIOLATION
InvalidForeignKey.new(message, sql: sql, binds: binds)
when VALUE_LIMIT_VIOLATION
ValueTooLong.new(message, sql: sql, binds: binds)
when NUMERIC_VALUE_OUT_OF_RANGE
RangeError.new(message, sql: sql, binds: binds)
when NOT_NULL_VIOLATION
NotNullViolation.new(message, sql: sql, binds: binds)
when SERIALIZATION_FAILURE
SerializationFailure.new(message, sql: sql, binds: binds)
when DEADLOCK_DETECTED
Deadlocked.new(message, sql: sql, binds: binds)
when DUPLICATE_DATABASE
DatabaseAlreadyExists.new(message, sql: sql, binds: binds)
when LOCK_NOT_AVAILABLE
LockWaitTimeout.new(message, sql: sql, binds: binds)
when QUERY_CANCELED
QueryCanceled.new(message, sql: sql, binds: binds)
else
super
end
end
Defined in activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb line 468
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::ConnectionAdapters::PostgreSQLAdapter