Exceptions no Framework 2.0 Show!

Publicado: 23/06/2005 em IntoSpaces


Pra começar logo de cara vemos a descricao do Metodo Zip e notamos uma diferença interessante em relação ao Intelissense do Visual Studio 2003.
Agora podemos saber sem consultar a documentação quais exceções este tipo de método pode lançar.
Realmente é um recurso muio interessante e quando visualizamos já queremos implementar em nossos métodos também, mas a questão que bate é a mais famosa, "como fazer isso?".
Aí começam a vir respostas de todos os lados de nossa mente:

"Será que temos que espcificar no método como é feito em Java? Usando o throws logo após a sua assinatura?"

"Não não.. é o compilador que faz isso pra gente"

"O visual studio agora consegue descobrir quais são as classes dentro do método que herdam a System.Exception e assim monta essa visualização, owww fantástico!"

heheeheheheh Confesso que isso passou pela minha cabeça, mas eu estava querendo complicar muito algo que realmente é simples.
Navegando pelo maravilhoso Help do VS2005 descobri que o J# como o Java usa o throws porém só ele então é meio difícil que as classes do FW tenham sido reescritas todas com ele…

Foi aí que veio a lembrança do nossos velhos amigos comentários XML!! Pow é assim que são documentas as Exceptions desde o FW1.1 não poderia ser diferente agora! Procurando bem você encontra os exemplos específicos:

How to: Use the XML Documentation Features (C# Programmers Reference) 
ms-help://MS.VSCC.v80/MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.VisualStudio…

Recommended Tags for Documentation Comments (C# Programmer’s Reference)
ms-help://MS.VSCC.v80/MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.VisualStudio.v…

<exception> (C# Programmer’s Reference)
ms-help://MS.VSCC.v80/MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.VisualStudio.v…

Detalhe, estes links são para sua documentação local, mas procurando em http://msdn2.microsoft.com/library/default.aspx encontrará também😉

Agora para adiantar para vocês vou mostrar um exemplo simples de como isso fica na prática:

Primeira assinatura do método Zip
/// <summary>
/// Compacta um arquivo somente
/// </summary>
/// <param name="filename">Arqvuiso a ser compactado</param>
/// <exception cref="System.Exception">Excecao nao prevista</exception>
/// <exception cref="Shindesign.NullException">Excecao customizada</exception>
public void Zip(string filename){ }

Segunda assinatura do método Zip
/// <summary>
/// Compacta varios arquivos
/// </summary>
/// <param name="filenames">Array de arquivos a serem compactados</param>
/// <exception cref="System.Exception2">Um erro qualquer</exception>
public void Zip(string[] filenames){ }

Notem que na imagem ele aponta que eu tenho +1 overload (sobrecarga) para o método Zip porém ele só nos mostra as exceções para o primeiro método da lista.
Eu acrediqo eu isso possa ser melhorado, caso queiramos saber como os outros métodos trabalham etc, pois assim cairíamos no caso do antigo Visual Studio.
Mas até a versão final tem tempo, vamos acompanhando as evoluções deste recurso bastante interessante!!!

Bom é isso ae, go go go Visual Studio 2005 e Framework 2.0!!!
Espero que tenham gostado!!

[]’s
Shinji

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s