如何捕获不存在的Rose :: DB数据库的连接失败?

时间:2010-01-21 14:19:55

标签: database perl try-catch

My 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:
could not connect to server: No route to host (0x00002751/10065)

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

到目前为止似乎有效的解决方案是从John发给我的:

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

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

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