Introdução ao tratamento de exceções em C #
Não podemos esperar que um usuário insira os detalhes corretos o tempo todo. No entanto, se a entrada incorreta ou inesperada não for tratada corretamente, o código inteiro poderá falhar ou sofrer um loop infinito. Esse é um problema iniciado durante a execução do programa devido a condições ou entradas inesperadas. Por exemplo, o resultado é infinito quando um número está sendo dividido por zero. O tratamento de exceções é a maneira de dizer ao programa para passar para o próximo bloco de código ou fornecer o resultado definido em determinadas situações. O tratamento de exceções pode ser feito com menos de quatro palavras-chave.
- Try: O bloco try define o tipo de exceção a ser tratada. É aqui que a exceção seria detectada. Ele sempre será emparelhado com um bloco de captura.
- Catch: Depois que o bloco try definiu o tipo e obteve uma exceção durante a execução, o bloco catch confirmará o tipo de manipulador de exceções a ser usado. Este bloco também determinará onde a exceção deve ser tratada. Como a palavra-chave indica, é como capturar a exceção.
- Finalmente: Este bloco possui algum conjunto de instruções. Independentemente da exceção lançada, as instruções definidas no bloco final sempre serão executadas.
- Throw: quando uma exceção é capturada, a palavra-chave throw é usada para mostrar a exceção capturada.
Você pode salvar o software ou seu código de muitos problemas definindo o manipulador de exceções. É uma boa prática definir o manipulador de exceções sempre que houver uma possível exceção.
Sintaxe
Sempre que a exceção é gerada, um método declarado captura a exceção com a ajuda de try and catch keyword. Precisamos colocar essa combinação na parte do código, uma exceção é esperada. Esses códigos são chamados de código protegido. Você também pode definir mais de uma palavra-chave de captura para uma palavra-chave de tentativa. No final do conteúdo, a parte final do código será executada e será executada independentemente de uma exceção ser gerada ou não.
Código
try
(
//Define the statement that could cause an exception.
)
Catch(ExceptionName secondException)
(
//error handling code
)
Finally
(
//define the statement that will be executed
)
Como o tratamento de exceções funciona em c #?
Existem muitas classes predefinidas para lidar com a exceção. O bloco try cobre a parte do código que pode gerar uma exceção e catch confirma o que fazer quando uma exceção é capturada. A parte final do bloco define o que deve ser feito se a exceção é detectada ou não e a parte de lançamento exibe a mensagem, se houver alguma.
Classes de exceção em c #
Existem muitas classes disponíveis em C # através das quais as exceções podem ser representadas. Todas as classes são derivadas da classe principal chamada System. Exceção. Existem poucas classes que também são derivadas de System.ApplicationException e System.SystemException.
Exemplos de classes de exceção em C #
Exceções são derivadas do sistema. Classe de exceção. Aqui está a lista de classes de exceção comuns em C #.
Exceção | Descrição |
System.DivideByZeroException | lida com o erro ao tentar dividir um número por zero. |
System.NullReferenceException | lida com o erro ao se referir a um objeto que não existe. |
System.InvalidCastException | lida com o erro ao tentar a transmissão inválida. |
System.IO.IOException | Todo erro de entrada e saída é tratado. |
System.FieldAccessException | Ao tentar acessar a classe não autorizada |
1. C # try / catch
O tratamento de exceções é feito por try and catchs block em C #. O bloco try em C # é usado para colocar o código que pode gerar uma exceção. A exceção é tratada pelo bloco de captura.
Exemplo de C # sem try / catch
Código:
using System;
public class exceptionhandling
(
public static void Main(string() args)
(
int a = 10;
int b = 0;
int x = a/b; //we are trying to divide the number with zero
Console.WriteLine("other part of the code");
)
)
Resultado:
Exemplo de tentativa / captura de C #
Código
using System;
public class ExExample
(
public static void Main(string() args)
(
try
(
int a = 10;
int b = 0;
int x = a / b;
)
catch (Exception e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)
Resultado:
Finalmente, uso de classes de exceção em C #
Ele mostrará a mensagem, independentemente da exceção ser capturada.
Código
using System;
public class Exceptionhandling
(
public static void Main(string() args)
(
try
(
int x = 5;
int y= 0;
int z = x / y;
)
catch (Exception obj) ( Console.WriteLine(obj); )
finally ( Console.WriteLine("Time to execute finally block"); )
Console.WriteLine("Other part of the code");
)
)
Resultado:
1. C # finalmente exemplo se exceção não é tratada
Código
using System;
public class ExceptionHandling
(
public static void Main(string() args)
(
try
(
int p = 6;
int q = 0;
int r= p/q;
)
catch (NullReferenceException nullObject) ( Console.WriteLine(nullObject); )
finally ( Console.WriteLine("Exception not handled. Now Finally section will be executed"); )
Console.WriteLine("Other part of the code");
)
)
Resultado:
2. Exceção definida pelo usuário em C #
O sistema não é apenas definido, mas também podemos definir nossa própria exceção. No entanto, precisamos herdar o código para fazer isso.
Código
using System;
public class userdefinedInvalidAge : Exception
(
public userdefinedInvalidAge (String errorMessage)
: base(errorMessage)
(
)
)
public class TestUserDefinedException
(
static void validateAge(int age)
(
if (age < 18)
(
throw new userdefinedInvalidAge("Sorry, Age must be greater than 18");
)
)
public static void Main(string() args)
(
try
(
validateAge(12);
)
catch (userdefinedInvalidAge e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)
Resultado:
Conclusão
Em qualquer lugar que você ache que possa gerar um erro devido a alguma coisa, o manipulador de exceções deve ser usado. É essencial que você use uma instrução catch e comece do genérico para uma exceção específica. Todo o seu software ou código está em risco sem o manipulador de exceção apropriado.
Artigos recomendados
Este é um guia para tratamento de exceções em c #. Aqui discutimos como o tratamento de exceções funciona em C #, exemplos e uso de c #. Você também pode consultar nossos outros artigos relacionados para saber mais.
- Sobrecarga em c #
- Funções de seqüência de caracteres C #
- Usos de c #
- C # if Instrução
- Guia para tratamento de exceções no VB.NET
- Sobrecarregando e substituindo em c #
- Eventos VB.Net