Class: OCI8::OCINamedError

Inherits:
OCIError
  • Object
show all
Defined in:
lib/oci8/oci_named_error.rb

Constant Summary collapse

UNHANDLED_ERROR =
6512

Class Method Summary collapse

Class Method Details

.===(error) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/oci8/oci_named_error.rb', line 14

def ===(error)
  error = error.original_exception if error.respond_to?(:original_exception)
  OCIError === error &&
      (error.code.in?([*error_code]) ||
       # ORA-06512: at line 1
       # ORA-20100: some exception description <--- real exception code in the second line
       error.code == UNHANDLED_ERROR &&
           error.message.split("\n")[1].try(:[], /\AORA-(\d+)/, 1).try(:to_i).in?([*error_code]))
end

.define_exception(class_name, error_code) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/oci8/oci_named_error.rb', line 24

def define_exception(class_name, error_code)
  class_eval("class ::\#{class_name} < OCI8::OCINamedError\nself.error_code = \#{error_code}\nend\n", __FILE__, __LINE__ + 1)
end

.error_codeObject



10
11
12
# File 'lib/oci8/oci_named_error.rb', line 10

def error_code
  oci_error_code
end