Как отловить сбой подключения к несуществующей базе данных Rose :: DB? - PullRequest
1 голос
/ 21 января 2010

Мое приложение Perl использует Rose :: DB, Rose :: DB :: Object (ORM) и Tk в Windows XP. Мне нужно проверить, приводит ли информация о соединении с базой данных (хост, порт, имя базы данных, пользователь, пароль) к действительному соединению. Если я позвоню $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 в целом?

Спасибо за помощь!

1 Ответ

2 голосов
/ 21 января 2010

Решение, которое, похоже, работает до сих пор, было отправлено мне от Джона:

my $ok = eval { $db->connect };<br/></p> <pre><code>if(!$ok || $@) { # Connection failed }

...