2010-09-22 4 views

Répondre

3

Utilisation eval:

eval { 
    my $resp = $mech->get($url); 
    $resp->is_success or die $resp->status_line; 
    # your code 
}; 

if ([email protected]) { 
    print "Recovered from a GET error\n";  
} 

Le bloc eval attrapera toute erreur en Geting la page.

1

Une option consisterait à implémenter une méthode pour gérer les erreurs de dépassement de délai et à l'ancrer dans l'objet mech au moment de la construction en tant que gestionnaire onerror. Voir Constructor and Startup dans les docs.

Vous pouvez même ignorer les erreurs en définissant un gestionnaire d'erreurs null, par exemple:

my $mech = WWW::Mechanize->new(onerror => undef); 

mais je ne recommanderais pas - vous aurez juste des problèmes étranges plus tard.

0

Cette solution continuera à tenter de charger la page jusqu'à ce qu'elle fonctionne.

do { 
    eval { 
     $mech->get($url); 
    }; 
} while ([email protected] ne ''); 
Questions connexes