C# tente pegar

C# tente pegar
Uma exceção é um estado ou um evento que ocorreu no momento da execução, o que não é esperado ao escrever o código -fonte. Para superar essa situação, é necessário um código especial junto com o objeto de exceção para corrigir este. Este código contém quatro blocos, dos quais dois deles são os principais itens que devem ser usados ​​para a exceção a ser tratada na tentativa e captura de blocos. Esses quatro blocos são explicados abaixo.
  • Tente: isso define um bloco de tentativa; Usamos a declaração que pode causar qualquer erro dentro deste bloco de tentativa.
  • Catch: Este bloco é usado para capturar a exceção gerada pelo bloco de tentativa. O objeto de exceção gera o erro dentro deste bloco.
  • Finalmente: qualquer código que você deseja gerar em qualquer caso é escrito dentro deste bloco.
  • Arremesso: este bloco é usado para lançar a exceção manualmente do bloco de tentativa para o bloco de captura.

Exemplo 1

Para implementar o conceito Try-Catch, primeiro usaremos um programa simples em C Sharp Code. Primeiro, declararemos uma variedade de tipos de dados inteiros. Ao declarar a matriz, não precisamos declarar o tamanho da matriz. Mas, quando os valores são atribuídos, o índice é corrigido automaticamente. Então, neste caso, a matriz do índice 4 será criada.

Int [] arr = 1, 2, 3, 4, 5;

Para exibir todos os elementos de uma matriz, usaremos um loop para loop. A função da matriz, arr,.O comprimento () é usado para encontrar o comprimento total da matriz até o qual o loop itera. Esta função é chamada através do objeto da matriz. A declaração do console desempenhará seu papel na exibição dos itens da matriz. Mas usaremos o índice da matriz que está além do seu tamanho real. Por exemplo, o tamanho da matriz é 4, mas usaremos o índice 7 para exibir seu valor.

Console.WriteLine (arr [7]);

Isso causará um erro; Uma exceção será lançada quando esta linha for executada.

Para compilar o código anterior, usamos o compilador MCS necessário no terminal Linux, enquanto o mono é usado para executar o código executável com o .EXE Extensão.

Arquivo de $ mcs.cs
$ MONO FILE.exe

O valor resultante será os itens presentes em uma matriz exibida através do loop "for". Mas e a última linha usada para exibir o item no 7º índice da matriz? O índice está fora do intervalo dado, então uma exceção ocorrerá.

Para superar esse erro ou para evitar a exceção, usamos o conceito de tentar pegar. Essas duas são as ferramentas que usamos dentro do código que ajuda na execução suave do código sem destacar o erro que faz com que o programa seja encerrado.

O fenômeno de try-capatch funciona para que a declaração ou o código que você acha que pode causar uma geração de erros é escrito dentro do corpo de tentativa. Por exemplo, a frase usada para exibir o valor do 7º índice, escrita no código anterior, será usada dentro do corpo de tentativa.

Agora, aplicaremos essa abordagem ao código anterior. Todos os itens são exibidos da mesma forma pelo loop, permanecendo dentro do intervalo da matriz. Quando se trata do 7º item de índice, escreva esta declaração dentro do bloco de tentativa.

Tentar
Console.WriteLine (arr [7]);

Depois de declarar o corpo de tentativa, usaremos o bloco de captura. Este bloco é a parte principal para evitar a exceção. Ele lida com o erro exibindo a mensagem de erro e, ao mesmo tempo, executando com sucesso o programa. A mensagem exibida é a propriedade do objeto que pertence ao erro IndexOutOfRangeException Type.

Pegar
Console.WriteLine ("Mensagem", e.mensagem);

Esta mensagem funcionará através do objeto; Uma mensagem é o que usamos, enquanto o objeto exibe o outro.

Você pode ver o valor resultante. A mensagem de erro é exibida através dos blocos de tentativa.

Exemplo # 2

Não é obrigatório sempre usar uma única tentativa e um único bloco de captura. Podemos usar mais de um bloco de captura para um único bloco de tentativa. No Código de Exceção Cuidado C, vários blocos de captura são usados ​​quando o usuário não tem certeza sobre o tipo de erro. O usuário não está ciente de qual tipo de exceção pode ocorrer. É por isso que usamos diferentes blocos de captura para lidar com qualquer tipo de erro que possamos encontrar.

Usando várias capturas, existe um bloco final. Esta parte do código é executada, independentemente de ocorrer o erro.

A sintaxe simples de várias capturas é dada abaixo:

tentar

// qualquer declaração
Catch (OBJ)

// Código de manipulador
Catch (OBJ)

// Código de manipulador
finalmente

// Código padrão

No exemplo dado, exibiremos os valores dentro da matriz no bloco finalmente. Considere o código -fonte em que uma matriz de 4 elementos é declarada. Dentro do corpo de tentativa, usamos o loop para buscar cada item de uma matriz e aplicar a condição fornecida.

Console.WriteLine (arr [i] / arr i +1]);

Dentro do loop, cada item é buscado e dividido pelo próximo número da matriz. Após o corpo de tentativa, usaremos uma sequência de blocos de captura para mencionar as exceções de diferentes tipos que podem ser ocorridos de acordo com a situação.

Catch (indexOutOfRangeException e)

O primeiro bloco é para a exceção fora do alcance junto com o objeto. Uma mensagem com o objeto será exibida.

Da mesma forma, o segundo bloco de captura será:

Catch (dividebyzerexception e)

Esta exceção ocorrerá se algum número for dividido por zero.

O terceiro e o último tipo de captura são para os parâmetros escritos no argumento em excesso de valor, em vez do intervalo nas variáveis ​​declaradas.

Catch (ArgumentOutOfRangeException e)

Ao defini -los, você saberá que a captura será executada e exibirá o valor.

Movendo -se em direção ao bloco finalmente. Será executado se ocorre uma exceção ou não. E um loop para dentro, ele exibirá os valores de uma matriz.

Usamos a condição de divisão para dividir o número com o número presente ao lado. Portanto, se virmos os valores na segunda posição e no 1 índice, há "0", então qualquer coisa dividida com 0 causa uma exceção.

Primeiro, o erro é definido e o bloco final exibirá todos os valores.

Conclusão

Um processo de manuseio de exceção lida com a identificação de erros e depois resolvê -los. Isso é feito usando blocos de tentativa dentro do código-fonte. O código que você duvida que possa causar uma exceção é escrito dentro da tentativa, e o bloco de captura removerá esta exceção. Para uma única tentativa, uma única captura e várias capturas são usadas. Você pode usar qualquer objeto de exceção que você possa pensar pode ser útil para a possível exceção. Implementamos exemplos após a única captura e abordagens de captura múltiplas.