Por que estou recebendo NumberFormatException ao converter uma string para número?
O erro NumberFormatException
ocorre quando um valor que não pode ser interpretado como um número é passado para um método de conversão, como Integer.parseInt()
ou Double.parseDouble()
.
Causas comuns do erro NumberFormatException
A string contém caracteres não numéricos. A string está vazia ou nula. A string contém espaços em branco extras. O valor numérico está fora dos limites permitidos pelo tipo de dado.
Exemplo de erro e solução
Código que gera o erro:
public class Exemplo {
public static void main(String[] args) {
String numero = "abc";
int valor = Integer.parseInt(numero); // Lançará NumberFormatException
System.out.println("Número convertido: " + valor);
}
}
Correção:
public class Exemplo {
public static void main(String[] args) {
String numero = "100";
try {
int valor = Integer.parseInt(numero);
System.out.println("Número convertido: " + valor);
} catch (NumberFormatException e) {
System.out.println("Erro: formato inválido para conversão");
}
}
}
Como evitar NumberFormatException?
Verifique se a string contém apenas números antes de converter.
Use trim()
para remover espaços em branco desnecessários.
Utilize try-catch
para capturar e tratar a exceção de forma adequada.
Para conversões seguras, utilize tryParse
com bibliotecas de utilitários.
public static Integer converterParaInteiro(String valor) {
try {
return Integer.parseInt(valor.trim());
} catch (NumberFormatException e) {
return null;
}
}
Conclusão
O erro NumberFormatException
ocorre quando um valor inválido é passado para um método de conversão numérica. Com boas práticas como validação prévia e tratamento de exceções, é possível evitar esse problema e garantir maior estabilidade no código.
Como evitar NumberFormatException ao processar entradas de usuário?
O erro NumberFormatException é comum quando trabalhamos com entradas de usuário em aplicações Java. Muitas vezes, valores inesperados podem ser inseridos, causando falhas no programa. Implementar validações adequadas e tratamento de exceções é essencial para evitar esse tipo de problema.
Algumas aplicações:
- Conversão segura de valores numéricos
- Evitar falhas em aplicações que processam entrada de dados
- Garantir maior estabilidade em cálculos matemáticos
- Validação correta de números em APIs e formulários
Dicas para quem está começando
- Sempre valide se a string contém apenas números antes de converter
- Remova espaços em branco desnecessários com trim()
- Utilize try-catch para evitar que a exceção quebre o fluxo da aplicação
- Verifique se o número não ultrapassa os limites do tipo de dado
Contribuições de Rodrigo Farias