<div dir="ltr">Se isso te serve de consolo, seu email foi bem educativo quanto ao uso de try/catch || eval :)<br>Eu nunca usei assim, mas nunca tinha pensando que é possível usa-los assim. good point. ( tentei traduzir mais fica sem graça no português ) :P<br>
Agora vou olhar melhor os try/catch, eval que encontrar por aí...<br><br><div class="gmail_quote">2008/8/27 Blabos de Blebe <span dir="ltr">&lt;<a href="mailto:blabos@gmail.com">blabos@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Ok,<br>
<br>
Seu RTFM foi bem esclarecedor. Não pelo que diz, mas pelo que me fez entender.<br>
<br>
Quanto às cervejas, dispenso. Já tenho idade pra comprar as minhas ;)<br>
<br>
Hoje foi um dia onde eu me expressei especialmente mal então vamos por partes.<br>
<br>
Apesar de a discussão ter se iniciado com um exemplo real, e esta ser<br>
uma lista de Perl, enquanto todo mundo estava falando de Perl e de<br>
File::Path, eu, completamente fora do contexto estava falando de<br>
design de bibliotecas numa linguagem arbitrária. Quando todo mundo<br>
estava falando de die, função do Perl, eu estava ralando de die no<br>
sentido de exit(), completamente fora do contexto. Por este equívoco<br>
eu peço desculpas, principalmente ao Fernando que estava tentando me<br>
alertar para isso no GTalk.<br>
<br>
Apesar de não parecer, é muito mais comum do que se imagina, encontrar<br>
por aí, código mal escrito que não deixa claro o que está acontecendo.<br>
Aos que conviveram com isso, devem se lembrar de um tal módulo de<br>
rastreamento de aeronaves de um certo projeto, que continha exatamente<br>
72 exit(0) dentro do seu algoritmo. Detalhe: exit(&#39;zero&#39;), vai<br>
rastrear de onde veio, vai! E vão se lembrar também quantas bruxas<br>
foram queimadas na fogueira, até chegar nele. O típico caso de quebra<br>
dentro de biblioteca (Não, não era die()). No mesmo projeto também<br>
tinha uma biblioteca de logs, que matava aplicação, se não conseguisse<br>
mais gravar log. Como descobrimos isso? Lá pelas 4 da manhã de um fim<br>
de semana qualquer, enquanto o infeliz que fez a m&amp;rd@ estava em casa<br>
sonhando com try/catch. Eu sempre disse para nunca colocar<br>
programadores java pra fazer trabalho de homem, mas...<br>
<br>
Quebrar a aplicação por causa de um exit, abort, e família numa<br>
biblioteca é inadmissível. Sim eu também fui infeliz ao utilizar a<br>
palavra módulo no sentido de biblioteca.<br>
<br>
Eu sou particularmente arcaico quando se fala de exceptions. Hoje em<br>
dia, é fácil achar em certos cursos de TI, carinha ensinando<br>
<div class="Ih2E3d"><br>
#!/usr/bin/perl<br>
<br>
eval {<br>
...<br>
};<br>
<br>
$@ &amp;&amp; print &#39;Foda viu&#39;.$/<br>
<br>
</div>No livro do Bjarne Stroustrup, The C++ Programming Language, capítulo<br>
8, lá pela página 180, tem um exemplo de cunho didático que é<br>
constantemente extrapolado para o mundo real<br>
<br>
int main(int argc, char** argv){<br>
 &nbsp; &nbsp;try{<br>
 &nbsp; &nbsp; &nbsp; &nbsp;// Tente fazer qualquer coisa de qualquer jeito<br>
 &nbsp; &nbsp;}<br>
 &nbsp; &nbsp;catch(...) {<br>
 &nbsp; &nbsp; &nbsp; &nbsp;// Capture todas as exceções e salve a minha pele.<br>
 &nbsp; &nbsp;}<br>
}<br>
<br>
<br>
Só peço mais uma vez desculpas por viajar fora do contexto da thread.<br>
<br>
Abraços<br>
<div class="Ih2E3d"><br>
<br>
2008/8/26 Luis Motta Campos &lt;<a href="mailto:luismottacampos@yahoo.co.uk">luismottacampos@yahoo.co.uk</a>&gt;:<br>
</div><div><div></div><div class="Wj3C7c">&gt; Blabos de Blebe wrote:<br>
&gt;&gt;<br>
&gt;&gt; Eu nao afirmei que nao é pra tratar excecoes, muito pelo contrario.<br>
&gt;&gt; Agora chamar die de exception, é brincadeira. Voce tá me zuando, né!?<br>
&gt;<br>
&gt; Como sempre, RTFM. Do manual do perl (perldoc -f die):<br>
&gt;<br>
&gt; die LIST<br>
&gt; &nbsp;Outside an &quot;eval&quot;, prints the value of LIST to &quot;STDERR&quot; and exits with the<br>
&gt; current value of $! (errno). &nbsp;If $! is 0, exits with the value of &quot;($? &gt;&gt;<br>
&gt; 8)&quot; (backtick &#39;command&#39; status). &nbsp;If &quot;($? &gt;&gt; 8)&quot; is 0, exits with 255.<br>
&gt; &nbsp;Inside an &quot;eval(),&quot; the error message is stuffed into $@ and the &quot;eval&quot; is<br>
&gt; terminated with the undefined value. &nbsp;*This* *makes* *&quot;die&quot;* *the* *way*<br>
&gt; *to* *raise* *an* *exception*.<br>
&gt;<br>
&gt; Grifo meu.<br>
&gt;<br>
&gt; Sem comentários, Blabos. Não tem cerveja trapista para você da próxima vez<br>
&gt; que eu for ao Brasil. ;)<br>
&gt;<br>
&gt; Putamplexos.<br>
&gt; --<br>
&gt; Luis Motta Campos is a software engineer,<br>
&gt; Perl Programmer, foodie and photographer.<br>
&gt; _______________________________________________<br>
&gt; SaoPaulo-pm mailing list<br>
&gt; <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
&gt; <a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
&gt;<br>
_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>--Lindolfo &quot;Lorn&quot; Rodrigues<br><a href="http://www.slackwarezine.com.br">www.slackwarezine.com.br</a><br><a href="http://lornlab.org">http://lornlab.org</a><br>
<a href="http://sao-paulo.pm.org">http://sao-paulo.pm.org</a><br>use Catalyst;<br>
</div>