ruby - e.err 和 e.errstr 有什么区别?

标签 ruby database error-handling dbi

我正在尝试使用 Ruby 创建数据库连接,并且遇到了一些建议,如果我将来遇到错误,我应该在错误通知中添加。

这是一个包含#{e.err} 和#{e.errstr} 的示例代码。

e.err 和 e.errstr 是什么意思,它们在处理数据库时有什么好处?

    require "dbi"

    begin
        # connect to the MySQL server
        dbh = DBI.connect("DBI:Mysql:TESTDB:localhost", "username", "password")
        # get server version string and display it
        row = dbh.select_one("SELECT VERSION()")
        puts "Server version: " + row[0]
    rescue DBI::DatabaseError => e
        puts "An error occurred"
        puts "Error code:    #{e.err}"
        puts "Error message: #{e.errstr}"
    ensure
        # disconnect from server
        dbh.disconnect if dbh
    end

最佳答案

它们由 ruby​​ 的数据库独立接口(interface)提供,

e.err -> will give you the error code like 4xx
e.errstr -> will give you the error message like 'unable to find the specified database'

希望这说明清楚

关于ruby - e.err 和 e.errstr 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51471515/

相关文章:

ruby-on-rails - 无法使用Ckeditor、Paperclip和Ruby on Rails给图片模型添加参数

ruby - require ruby​​gems 如何帮助查找 ruby​​gem 文件?

c++ - 没有合适的默认构造函数

database - 应用程序启动时,Mnesia disc_copies 表如何存储在 ram 中?

http - Angular 2 http 服务。获取详细错误信息

amazon-web-services - AWS-ELB错误页面重定向到其他域

Ruby 直到循环 : undefined method `[]' for nil:NilClass (NoMethodError)

ruby-on-rails - Digest::SHA2.hexdigest() 在哪里定义?

database - 针对代码版本测试和管理数据库版本

c++ - 制作一个具有两个固定长度和一个可变长度的 3D vector