Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何捕获到不存在的Rose::DB数据库的连接故障?_Database_Perl_Try Catch - Fatal编程技术网

Database 如何捕获到不存在的Rose::DB数据库的连接故障?

Database 如何捕获到不存在的Rose::DB数据库的连接故障?,database,perl,try-catch,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',…)失败:无法连接到服务器:没有到主机的路由(0x00002751/10065) 如

我的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',…)失败:
无法连接到服务器:没有到主机的路由(0x00002751/10065)

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


谢谢你的帮助

约翰向我发布了一个迄今为止似乎有效的解决方案:


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

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