本文概述
- NumberFormatException的常见原因
- 如何避免NumberFormatException?
【Java中的NumberFormatException】这是一个未经检查的异常。它是IllegalArgumentException的子类, 并实现Serializable接口。
NumberFormatException的构造方法
建设者 | 描述 |
---|---|
NumberFormatException() | 这将构造一个NumberFormatException, 而没有指定的详细消息。 |
NumberFormatException(String s) | 这将在字符串s中构造一个带有指定的详细消息的NumberFormatException。 |
public class Example {public static void main(String[] args) {int a = Integer.parseInt(null);
//throws Exception as//the input string is of illegal format for parsing as it is null.}}
输出:
文章图片
NumberFormatException的常见原因 由于NumberFormatException是由于引发异常的方法的相应参数的字符串格式不正确而发生的, 因此可以有多种方式。其中一些被提及如下-
- 提供的输入字符串可能为null-示例-Integer.parseInt(null);
- 输入字符串可能为空-示例-Integer.parseInt(“”);
- 输入字符串可能带有尾随空格-示例-Integer.parseInt(“ 123”);
- 输入字符串可能有一个前导空格-示例-Integer.parseInt(“ 123”);
- 输入字符串可以是字母数字-示例-Long.parseLong(“ b2”);
- 输入字符串的输入可能会超出存储已分析字符串的数据类型的范围-示例-Integer.parseInt(“ 135”); 整数的最大可能值为127, 但字符串中的值为135, 超出范围, 因此将引发异常。
- 输入的字符串和用于解析的方法类型之间可能不匹配。如果你提供“ 1.0”之类的输入字符串, 并尝试将该字符串转换为整数值, 它将引发NumberFormatException异常。范例-Integer.parseInt(“ 1..0”);
要拥有有效且格式正确的字符串, 首先, 请检查输入字符串是否不为null。然后, 检查是否有不必要的空格, 然后将其全部裁剪掉, 然后进行多次检查, 以验证参数字符串是否与我们用于解析字符串的方法的类型匹配。如果方法是ParseInt(), 请检查字符串是否具有整数值, 并且对于所有其他方法, 同样进行所需的检查。
为了防止Java程序生成NumberFormatException, 始终最好将可能引发此异常的代码行封装在try-catch块中, 如下所示-
public class NumberFormatExceptionExample { private static final String inputString = "123.33";
public static void main(String[] args) {try {int a = Integer.parseInt(inputString);
}catch(NumberFormatException ex){System.err.println("Invalid string in argumment");
//request for well-formatted string}}}
推荐阅读
- 我们可以启动一个线程两次吗
- Java中的内存管理
- Java中的NoSuchElementException
- 常见的Windows 11问题和解决方法(提示和指南)
- 6款适用于Chromebook(Chrome替代品)的最佳浏览器合集
- 如何修复无法重置Windows 11的问题(详细分步指南)
- win8.1打开Media Player播放器提示“Failed to load control ”怎样办
- Win8怎样运用自带的GeoLocation地理定位技巧【图文详细教程】
- win8.1系统搜索文件时遇到同一个文件重复显示怎样办