2010-01-21 14 views
1

Mon application Perl utilise Rose :: DB, Rose :: DB :: Objet (ORM) et Tk sous Windows XP. Je dois vérifier si les informations de connexion à la base de données (hôte, port, nom de la base de données, utilisateur, mot de passe) mènent à une connexion valide. Si j'appelle $db->connect et que j'utilise par exemple une foule couinent pour le test, Rose :: DB dit:

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)
Comment puis-je détecter un échec de connexion dans une base de données Rose :: DB non existante?

Comment puis-je attraper cela et créer un nouveau message pour mon application? Est-ce une question sur try/catch en général?

Nous vous remercions de votre aide!

Répondre

2

Une solution qui semble fonctionner à ce jour a été affecté à moi de John:

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

if(!$ok || [email protected]) { # Connection failed }