Isso é possível no C#:
try
{
...
}
catch
{
...
}
finally
{
...
}
No Delphi, eu preciso de dois blocos try. Um para o except e outro para o finally:
try
try
...
except
...
end;
finally
...
end;
Taí uma coisa simples que seria muito legal se fosse suportado no Delphi. Ficaria mais simples:
try
...
except
...
finally
...
end;
TPodcast
7 Comments
Erick,
esse seu comentario foi ate uma pergunta feita ao pai do C# (Anders) pelo Mauro a anos atras, o porque de try catch finally, quando na verdade tinha que ser blocos independentes e aninhados, como no Delphao velho de guerra… Eu sempre concordei com ele, acho que as coisas tem que ter um minimo de organizacao na mente do programador que esta fazendo o sistema, nao acha ? Isso do C# é simplesmente uma maneira de ajudar as pessoas de VB que nao sabem o que é organizacao e orientação a objetos quando tivessem o bom senso de migrar pra uma linguagem decente !!! (hahaha!)
[]s
JR
Junior,
Eu não concordo não, acho que tem tudo a ver os dois blocos juntos, pois normalmente quando ocorre algum erro, vc tem que garantir que recursos sejam liberados, objetos destruidos (principalmente em ambiente win32) e coisas do tipo.
Pra mim, try..catch..finally é bem mais prático.
Junior,
Descordo do seu comentário, pois esta estrutura para o try..catch já vinha do C++ que é uma linguagem mais antiga e muito mais poderosa do que o Object Pascal do Delphi.
O C# assim como o Java herdaram esta estrutura do C++, o ObjectPascal embora seja uma linguagem muito boa peca em alguns conceitos de orientação a objeto, por exemplo não implementa polimorfismo paramétrico, que tanto o C++, como o Java e o C# implementam.
É somente uma questão de sintaxe o Delphi não é melhor ou pior por isso, embora pessoalmente eu acho se ficasse no mesmo bloco seria mais simples de entender.
Marco, no Delphi você pode fazer sobrecarga de métodos virtuais e assim implementar “polimormismo paramétrico”, como você diz. A propósito, sobrecarga de métodos é muito mais um recurso de casting do que algo específico de orientação a objetos.
Sr. Junior Thurle
Não entendi o porque que a instrucao C# nao é aninhado?
Por que mais aninhado e simples que try catch finally ?
Mais simples que try try except finally!
Desenvolvo em C e Delphi, e pode ter certeza que no dia a dia o entendimento de try catch finally é melhor, alem do tempo da digitação e alinhamento bem menor que try try except finally!
Ao colega de trabalho Junior Thurler
Apesar de os dois cumprirem a mesma finalidade proposta que é o que realmente vale a pena soh uma dica vale a pena ficar atendo também as propostas das novidades em tecnologia e desenvolvimento, ferramentas e linguagens, procurar saber o que as comunidades de desenvolvimento estão usando, quanto a isso acredito que não vale a pena resistir somente em uma linguagem, Delphi, que não é o que as melhores empresas as que $$ mais estão a procura. Também comecei com Delphi, mas não se prenda. Não me entenda mal, sucesso!
concordo com o Erick, porem uso o Delphi e tenho que escrever as linhas em dois blocos.