| Membros: 220 |
| Idioma: Português (Brasil) |
| Categorias do grupo:
|
| Mais informações sobre o grupo » |
|
Tratamento de Exceções em C#
Diferentemente de JAVA exceções em C# são não verificadas, ou seja, o programador não é obrigado a tratar certos tipos de instrução. Um exemplo clássico que pode ser dado é a abertura de arquivos. Em JAVA caso você tente abrir um arquivo do sistema você obrigatoriamente deve escrever códigos para tratar exceções do tipo IOException. Já em C# você pode simplesmente tentar abrir o arquivo por sua conta e risco.
Existem prós e contras essa abordagem, códigos que você tem certeza que vão ser executados corretamente não precisam do overhead para tratamento de exceções. No entanto essa prática pode se tornar relapsa deixando que erros em tempo de execução sejam atingidos prejudicando a robustez da aplicação. Exemplo de abertura de arquivo em JAVA:
try { FileInputStream input = new FileInputStream("arquivoInexistente"); } catch(IOException e) { System.out.println(e.getMessage()); }
Exemplo de abertura de arquivo em C#:
try { File.OpenRead("arquivoInexistente"); } catch (IOException e) { Console.WriteLine(e.ToString()); }
Lembrando que em C# os blocos try/catch poderiam ser omitidos, ou seja, tratar as exceções de entrada e saída não é obrigatório. Mas o que aconteceria caso o arquivo não existisse e a exceção não fosse tratada? O programa iria exibir uma mensagem de erro em tempo de execução e abortaria.
Um ponto muito importante a ressaltar é o uso de blocos finally. Esses blocos têm sua execução garantida independente da ocorrência ou não de exceções. Devem ser utilizados quando é necessário que uma operação precise ter 100% de garantia de execução. Um exemplo é na execução de querys SQL. O ponteiro que fica aberto com o banco de dados tem que ser obrigatoriamente fechado ao final do método para garantir que o número máximo de cursores do banco não seja excedido. Assim devemos colocar no bloco finally uma instrução para fechar esse cursor. Outro exemplo é no uso de sockets. Deve-se adicionar instruções para fechar a conexão no bloco finally para que não fique ocupando os canais de comunicação.
Operações sobre a abertura de arquivo podem gerar os mais diferentes tipos de exceções, entre elas (C#):
Esse foi apenas um introdutório sobre exceções em C#. Espero que tenha dado uma luz no final do túnel para quem está começando na linguagem e peço aos mais experientes que postem aqui para aumentar nosso conhecimento.
|
| |||||||||||
| Criar um grupo - Grupos do Google - Página inicial do Google - Termos de Uso - Política de Privacidade |
| ©2009 Google |