【问题标题】:How do I catch a connection failure to a nonexistant Rose::DB database?如何捕获到不存在的 Rose::DB 数据库的连接失败?
【发布时间】:2010-01-21 23:21:51
【问题描述】:

我的 Perl 应用程序在 Windows XP 上使用 Rose::DB、Rose::DB::Object (ORM) 和 Tk。我需要检查数据库连接信息(主机、端口、数据库名称、用户、密码)是否导致有效连接。如果我打电话给$db->connect 并使用例如一个不存在的测试主机,Rose::DB 说:

DBI connect('dbname=my_db;host=192.168.70.85;port=5432','postgres',...) failed: <br>could not connect to server: No route to host (0x00002751/10065)

我如何捕捉到这一点并为我的应用程序创建一条新消息?这是一个关于 try/catch 的问题吗?

感谢您的帮助!

【问题讨论】:

  • 您可以使用Nice::Try 并执行try { $db-&gt;connect } catch( $e ) { say "Error connecting: $e" } 之类的操作

标签: database perl try-catch


【解决方案1】:

John 向我发布了目前看来可行的解决方案:

my $ok = eval { $db->connect };

if(!$ok || $@) { # Connection failed }

【讨论】:

    猜你喜欢
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 2013-07-04
    • 2023-03-04
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多