O que são erros de tempo de execução em Java | Explicado

O que são erros de tempo de execução em Java | Explicado
Em Java, um evento indesejado que encerra a execução do programa é conhecido como um erro. Ocorre por causa de problemas sintáticos ou outros problemas que não podem ser detectados no momento da compilação. Os erros que não podem ser detectados no tempo de compilação e, portanto, ocorrem no momento da execução do programa são conhecidos como erros de tempo de execução, enquanto os erros com problemas sintáticos são chamados de erros de compilação no tempo.

Este artigo apresenta uma visão geral detalhada dos erros de tempo de execução em Java e, nesse sentido, precisamos entender os seguintes conceitos:

  • O que são erros de tempo de execução em java?
  • Tipos de erros de tempo de execução em java
  • Fatores que causam erros de tempo de execução
  • Exemplos de erros de tempo de execução
  • Como lidar com erros de tempo de execução

Então vamos começar!

O que são erros de tempo de execução em java?

Os erros que ocorrem no momento da execução do programa são referidos como erros de tempo de execução. Esses tipos de erros não podem ser detectados no momento da compilação, pois não há nada de errado com a sintaxe deles. Portanto, podemos dizer que o programa que está sintaticamente correto ainda lança um erro no momento da execução do programa é chamado de erro de tempo de execução.

Tipos de erros de tempo de execução em java

Existem vários tipos de erros de tempo de execução que podemos enfrentar no momento da execução do programa. Alguns erros de tempo de execução frequentemente encontrados estão listados abaixo:

  • Erros de entrada e saída
  • Erro de loop infinito
  • Divisão por zero erros
  • Erros lógicos
  • Erros fora do alcance
  • Erro de objeto indefinido

Fatores que causam erros de tempo de execução

Existem inúmeros fatores que causam erros de tempo de execução, entre eles as causas mais comumente encontradas estão listadas abaixo:

  • Dividir qualquer valor numérico por zero produz erros de tempo de execução.
  • Acessando uma matriz fora dos limites.
  • Passando dados inválidos e.g. passando um valor numérico para o campo não numérico.
  • Passando parâmetros/argumentos inválidos para um método.
  • Vários processos tentando acessar o mesmo recurso ao mesmo tempo.
  • Tentando armazenar um valor de tipo incompatível para uma coleção.
  • Erro de espaço/memória insuficiente em threads (OrofMemoryError)

Exemplos de erros de tempo de execução

Vamos entender o conceito de erros de tempo de execução com a ajuda de exemplos.

Exemplo

Neste exemplo, temos uma variedade de tamanho três:

classe pública RunTimeErRorRorExample
public static void main (string [] args)
int ary [] = 4, 6, 2;
Sistema.fora.println ("Resultado:" + ary [3]);

O comprimento da matriz é três e sabíamos que a indexação da matriz começa de zero. Então, especificar Ary [3] significa que estamos tentando acessar o quarto elemento da matriz. Sintaticamente, nada de errado com isso, então não enfrentamos nenhum erro na hora da compilação. No entanto, a JVM lançará o erro em tempo de execução:

A partir do snippet acima, observamos que ocorre um erro no tempo de execução quando tentamos acessar o índice fora do alcance.

Para a clareza do conceito, vamos considerar outro exemplo:

Exemplo

Desta vez, temos uma string atribuída com um "nulo" valor e tentaremos encontrar o comprimento da string:

classe pública RunTimeErRorRorExample
public static void main (string [] args)
String str = null;
Sistema.fora.println (str.comprimento());

A seguir, será a saída para o trecho de código acima:

Quando executamos o programa, encontramos um Null Pointer Exception Porque a corda é nula.

Então, como lidar com esses erros de tempo de execução? O Java fornece uma solução para lidar com esses erros de tempo de execução? Claro, Java faz.

Como lidar com erros de tempo de execução

Em Java, os erros de tempo de execução podem ser resolvidos com a ajuda de declarações de tentativa de captilha e, para fazer isso, temos que colocar o código que pode causar um erro de tempo de execução nas instruções Try-Catch.

Exemplo

Vamos considerar o snippet de código abaixo para entender como resolver erros de tempo de execução usando instruções Try-Catch em Java:

classe pública RunTimeErRorRorExample
public static void main (string [] args)
tentar
int número 1 = 110, número2 = 0;
Sistema.fora.println ("Resultado:" + número1 / número2);
catch (arithmeticexception excep)
Sistema.fora.println ("Os valores numéricos não podem ser divididos por 0");

Agora, cercamos o código nas instruções de Try-Catch que podem lançar o erro:

Agora, desta vez, em vez de lançar o erro, a JVM mostra a mensagem que especificamos no bloco de captura.

Conclusão

Em Java, os programas que são sintaticamente corretos, mas ainda assim lançam alguns erros no momento da execução do programa, são conhecidos como erros de tempo de execução. Esses erros ocorrem devido a diferentes razões, como a divisão por zero, acessando uma matriz fora dos limites, passando dados inválidos e.g. passando um valor numérico para o campo não numérico, etc. Esses tipos de erros podem ser tratados ao redor do bloco de tentativa em torno do código que pode lançar os erros de tempo de execução. Esta redação explica diferentes aspectos dos erros de tempo de execução, por exemplo, quais são erros de tempo de execução, seus tipos, causas e como corrigir esses erros em java.