Класс NumberFormatException
Класс NumberFormatException наследуется от
IllegalArgumentException и относится к непроверяемым
исключениям (unchecked). Оно выбрасывается методами
преобразования строк в числа, такими как
Integer.parseInt, Double.parseDouble,
Long.parseLong и другими, когда переданная строка
не может быть преобразована в число. В конструктор можно
передать сообщение об ошибке в виде строки, которое потом
можно получить с помощью метода getMessage.
Синтаксис
new NumberFormatException()
new NumberFormatException(String message)
Пример
Давайте попробуем преобразовать строку с буквами в целое число и перехватим исключение:
public class Main
{
public static void main(String[] args)
{
try
{
String str = "abcde";
int res = Integer.parseInt(str);
System.out.println(res);
}
catch (NumberFormatException e)
{
System.out.println("Error: " + e.getMessage());
}
}
}
Результат выполнения кода:
"Error: For input string: \"abcde\""
Пример
Давайте преобразуем корректную строку в число, а затем попробуем преобразовать строку с пробелом:
public class Main
{
public static void main(String[] args)
{
String str = "12345";
int res = Integer.parseInt(str);
System.out.println(res);
try
{
int res2 = Integer.parseInt("12 345");
System.out.println(res2);
}
catch (NumberFormatException e)
{
System.out.println("Error: " + e.getMessage());
}
}
}
Результат выполнения кода:
12345
"Error: For input string: \"12 345\""
Пример
Давайте создадим исключение NumberFormatException
вручную и выведем его сообщение:
public class Main
{
public static void main(String[] args)
{
try
{
throw new NumberFormatException("Invalid number format");
}
catch (NumberFormatException e)
{
System.out.println(e.getMessage());
}
}
}
Результат выполнения кода:
"Invalid number format"
Смотрите также
-
класс
IllegalArgumentException,
родительский класс данного исключения -
класс
RuntimeException,
базовый класс непроверяемых исключений -
метод
getMessage,
который возвращает сообщение об ошибке -
конструкция
try-catch,
которая перехватывает исключения