Manipulação de exceção em C # - Como o tratamento de exceções no C # funciona - Exemplos

Índice:

Anonim

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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çãoDescrição
System.DivideByZeroExceptionlida com o erro ao tentar dividir um número por zero.
System.NullReferenceExceptionlida com o erro ao se referir a um objeto que não existe.
System.InvalidCastExceptionlida com o erro ao tentar a transmissão inválida.
System.IO.IOExceptionTodo erro de entrada e saída é tratado.
System.FieldAccessExceptionAo 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.

  1. Sobrecarga em c #
  2. Funções de seqüência de caracteres C #
  3. Usos de c #
  4. C # if Instrução
  5. Guia para tratamento de exceções no VB.NET
  6. Sobrecarregando e substituindo em c #
  7. Eventos VB.Net