NumberFormatexception em Java

NumberFormatexception em Java
Os desenvolvedores em Java geralmente precisam trabalhar com vários tipos de dados formatados de maneira diferente. Por exemplo, acumular dados gerados ou criptografados gerados aleatoriamente no código. Em tais situações, lidar com o “NumberFormatexception”Em Java, é auxiliar em abster -se das limitações, simplificando as funcionalidades do código no final do desenvolvedor.

Este blog vai elaborar sobre a frente e lidar com o “NumberFormatexception”Em Java.

O que é "numberFormatexception" em Java?

O "NumberFormatexception”Corresponde a uma exceção em Java quando uma tentativa é feita para transformar uma string com um formato incorreto em um valor numérico. A conversão é feita através do “parseint ()”Método. Este método busca o tipo de dados primitivo do “Corda”.

Sintaxe

parseint (x, y)

Nesta sintaxe:

  • ““x”Refere -se à representação de string de decimal.
  • ““y”Transforma“x”Em um número inteiro.

Caso ideal

O exemplo a seguir explica o cenário de caso ideal para transformar a string em um número inteiro sem limitações:

int x = número inteiro.parseint ("30");
Sistema.fora.println ("O número inteiro é:"+x);

No código acima, aplique as etapas abaixo fornecidas:

  • Primeiro, especifique o tipo “Inteiro”Em que a conversão desejada é necessária.
  • Agora, aplique o “parseint ()”Método para analisar a sequência especificada para um número inteiro.
  • Isso dará o “Inteiro”Representação da sequência especificada.

Saída

Nesta saída, pode -se observar que o “Inteiro”A representação da string é recuperada de acordo.

Razões para a “NumberFormatexception Faced

O "NumberFormatexception”Em Java, pode ser encontrado por vários motivos. Vamos passar por cada um dos motivos um por um.

Caso 1: string de entrada vazia

Nesse caso, a exceção discutida pode ser enfrentada devido a um “vazio”String passou como a“parseint ()O parâmetro do método que precisa ser convertido em um número inteiro:

int x = número inteiro.parseint ("");
Sistema.fora.println (x);

Saída

Caso 2: string de entrada nula

Nesse cenário, a exceção pode ser enfrentada devido ao especificado “nuloPalavra -chave como um parâmetro de método:

int x = número inteiro.parseint (nulo);
Sistema.fora.println (x);

Saída

Observação: A declaração de exceção é idêntica nos dois casos acima, pois o valor como parâmetro do método é considerado “nulo”.

Caso 3: String de entrada com símbolos adicionais

A inclusão de símbolos extras na string também pode resultar na exceção discutida, como segue:

Sistema.fora.println (número inteiro.parseint ("1,23"));

Saída

Caso 4: string de entrada não numérica

Uma corda não numérica, eu.e., ““Trinta e cinco"Nesse caso, também pode causar o"NumberFormatexception" ocorrer:

int x = número inteiro.parseint ("trinta e cinco");
Sistema.fora.println (x);

Saída

Caso 5: String de entrada excedendo o intervalo

O limite máximo para o “parseint ()”O método é acumular“11" personagens. O intervalo que excede esse número também pode exibir o erro discutido, conforme enfrentado abaixo:

int x = número inteiro.parseint ("123452347684933");
Sistema.fora.println (x);

Saída

Caso 6: String de entrada com dados alfanuméricos

Nesta situação, a limitação declarada pode ser enfrentada devido aos alfabetos e números contidos simultaneamente sendo transformados em um número inteiro:

int x = número inteiro.parseint ("trinta 1");
Sistema.fora.println (x);

Saída

Caso 7: Tipo de dados incompatível

A incompatibilidade no “retornar”Tipo e o especificado“tipo de dados”Também pode resultar em encontrar a limitação discutida:

int x = número inteiro.Parseint ("30.6 ");
Sistema.fora.println (x);

Observe que, neste caso, o tipo de retorno é “Inteiro,”Mas o tipo de dados especificado é“flutuador", eu.e., 30.6.

Saída

Caso 8: String de entrada com espaços de branco acolchoados

Os espaços de branco acolchoados no início ou no final também podem ser um motivo para que esse erro seja enfrentado:

int x = número inteiro.parseint ("30");
Sistema.fora.println (x);

Saída

Isso foi tudo sobre a limitação de face em diferentes cenários. Agora, vamos discutir a abordagem para eliminar a limitação discutida.

Como lidar?

O discutido “NumberFormatexception”A limitação em Java pode ser atendida usando o“Tente ... pegarpegar" bloquear:

tentar
int x = número inteiro.parseint ("30");
Sistema.fora.println (x);

Catch (númeroFormatexception e)
Sistema.fora.println ("Exceção atendida!");

Sistema.fora.println ("retomando a execução ...");

Neste trecho de código, aplique as seguintes etapas:

  • Primeiro, especifique o “tentar”Bloco/declaração.
  • Neste bloco, inclua o tipo de retorno, i.e., ““Inteiro”E aplique o“parseint ()”Método para transformar a sequência especificada em um“Inteiro”E exibi -lo.
  • Observe que o gargalo (s) enfrentou ao executar o “tentar”O bloco pode ser enfrentado pelo“pegar" bloquear.
  • A provável exceção, eu.e., ““NumberFormatexception”Agora pode ser colocado no“pegar" bloquear.
  • Dentro deste bloco, exiba a mensagem declarada em vez da exceção enfrentada.
  • Fora de "pegarBloco, exiba a mensagem declarada indicando que as funcionalidades serão retomadas, independentemente da exceção encontrada.

Saída

A partir desse resultado, pode estar implícito que a exceção foi lidada adequadamente.

Conclusão

O "NumberFormatexception”Em Java é enfrentado quando é feita uma tentativa de transformar uma corda com um formato incorreto em um número inteiro. Esta exceção pode ser causada devido a vários motivos discutidos, eu.e., Espaços de brancos acolchoados na string, limite de string excedido, etc., e pode ser lidado através do “Tente ... pegar" declarações. Este blog discutiu as abordagens para enfrentar e lidar com o “NumberFormatexception”Em Java.