Bonjour,

J'aimerais savoir comment faire afin d'éviter que mon programme s'arrête dès qu'il rencontre un accession erroné.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use strict;
use warnings;
use Bio::DB::GenBank;
 
my $gb = new Bio::DB::GenBank;
foreach my $acc ('acc_error', 'X53228'){
    my $seq = $gb->get_Seq_by_acc($acc);
    if($seq == 0){
        print "erreur pour $acc\n";
    }
    else{
        my $description = $seq->desc();
        print "Acc = $acc\nDescription = $description\n";
    }
}
le script s'arrête et j'obtiens l'erreur
------------- EXCEPTION -------------
MSG: acc acc_error does not exist
STACK Bio:B::WebDBSeqI::get_Seq_by_acc C:/Perl/site/lib/Bio/DB/WebDBSeqI.pm:181
STACK toplevel P:\Perl\scripts\INTERR~1\RECHER~1\GET_SE~1.PL:23

--------------------------------------
Savez-vous quel test effectuer afin de vérifier que l'acc existe et ainsi passer à la suite de la liste sans que le programme ne plante?

Merci,