[Cascavel-pm] Tratamento de erro
Luis Campos de Carvalho
lechamps em terra.com.br
Quarta Junho 2 10:34:57 CDT 2004
----- Original Message -----
From: "Luiz Gonzaga" <lgonzaga em lncc.br>
To: <cascavel-pm em mail.pm.org>
Sent: Wednesday, June 02, 2004 12:23 PM
Subject: [Cascavel-pm] Tratamento de erro
> Pessoal,
>
> Desculpem-me mandar uma duvida sem consultar antes a documentacao etc.
> Mas estou com muita pressa, e preciso da ajuda de voces. Enquanto isto
> consultarei o "man" e se encontrar a solucao aviso.
>
> A questao e a seguinte, faco uma chamada a um metodo do objeto "$ca" e
> para uma determinado valor recebo uma mensagem de erro que nao posso
> chamar o metodo para um valor indefinido. Acho que o problema esta no
> modulo que estou usando (Bio::Assembly::ContigAnalysis). O que eu preciso
> eh saber como tratar este erro sem que o meu script
> (LoadProblemsFinish.pl) seja interrompido.
>
> O codigo "enxugado" eh este:
> foreach $contig ($assembly->all_contigs)
> {
> $ca = Bio::Assembly::ContigAnalysis->new(-contig=>$contig);
> @ncbs = $ca->not_confirmed_on_both_strands;
> #executo outros comandos a partir do conteudo de @ncbs
> }
>
Prezado Luiz
Seu problema é que a variável $ca não tem valor definido ( quer dizer que
"defined $ca" retorna falso).
Para resolver este problema, você pode fazer assim:
foreach $contig ($assembly->all_contigs)
{
$ca = Bio::Assembly::ContigAnalysis->new(-contig=>$contig);
if( UNIVERSAL::isa( $ca, 'Bio::Assembly::ContigAnalysis' ){
@ncbs = $ca->not_confirmed_on_both_strands;
#executo outros comandos a partir do conteudo de @ncbs
}else{
# Erro!!
}
}
Ou assim:
foreach $contig ($assembly->all_contigs)
{
$ca = Bio::Assembly::ContigAnalysis->new(-contig=>$contig);
eval{ @ncbs = $ca->not_confirmed_on_both_strands; }
die "Erro: $!\n" if $@; # Tratamento do erro capturado no "eval" acima
#executo outros comandos a partir do conteudo de @ncbs
}
Se isso não resolver, por favor me informe, pela lista. Mais gente pode
dar idéias melhores.
Putamplexos!
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Luis Campos de Carvalho
Computer Scientist
OCP DBA Oracle & Senior Unix Sys Admin
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mais detalhes sobre a lista de discussão Cascavel-pm