database - 如何捕捉到不存在的 Rose::DB 数据库的连接失败?

标签 database perl try-catch

我的 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 的问题吗?

感谢您的帮助!

最佳答案

John 向我发布了一个到目前为止似乎有效的解决方案:

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

<pre><code>if(!$ok || $@) { # Connection failed } </code></pre>

关于database - 如何捕捉到不存在的 Rose::DB 数据库的连接失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2109831/

相关文章:

php - joomla:使用 joomla db 函数在 joomla 外部建立数据库连接

java - 无法使用 MyBatis 在 Java 中捕获 SQLSyntaxErrorException

java - 在 Java 中嵌套 try/catch 语句是否可以接受?

javascript - D3 从不同的 csv 数据加载数据

javascript - 为什么我不能捕获从 node-postgres 抛出的错误?

sql-server - 如何将具有现有键的 DataTable 插入 SQL Server 表

ruby-on-rails - 通过与 :dependent => :destroy Rails 3. 2 的关系删除 has_many 中的对象

mysql - 使用OrientDB在Windows系统上执行.sql文件导入数据

perl - DBI-> connect上的错误处理

Perl Strange -M 标志在 'If' 语句中