Java--RuntimeException运行时异常--Num

2022-09-14  本文已影响0人  李赫尔南

  在使用包装类将字符串转换成基本数据类型时,如果字符串的格式不正确,则会出现数字格式异常(NumberFormatException) 。
【示例】NumberFormatException异常

public class Test{
    public static void main(String[] args) {
        String str = "1234abcf";
        System.out.println(Integer.parseInt(str));
    }
}

输出:Exception in thread "main" java.lang.NumberFormatException: For input string: "1234abcf" at java.lang.NumberFormatException.forInputString(NumberFormatException.java: 65) at java.lang.Integer.parseInt(Integer.java: 580) at java.lang.Integer.parseInt (Integer.java: 615) at Test.main (Test.java: 4)

  数字格式化异常的解决,可以引入正则表达式判断是否为数字:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test{
    public static void main(String[] args){
        String str = "1234abcf";
        Pattern p = Pattern.compile("^\\d+$");
        Matcher m = p.matcher(str);
        if(m.matches()){ //如果str匹配代表数字的正则表达式,才会转换
            System.out.println(Integer.parseInt(str));
        }
    }
}

注意事项
  1. 在方法抛出异常之后,运行时系统将转为寻找合适的异常处理器(exception handler)。潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合。当异常处理器所能处理的异常类型与方法抛出的异常类型相符时,即为合适的异常处理器。
  2. 运行时系统从发生异常的方法开始,依次回查调用栈中的方法,直至找到含有合适异常处理器的方法并执行。当运行时系统遍历调用栈而未找到合适的异常处理器,则运行时系统终止。同时,意味着Java程序的终止。

上一篇下一篇

猜你喜欢

热点阅读