You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何识别java.lang.NumberFormatException,替换null用于catch块if判断

问题分析与代码修正

核心问题说明

  1. catch块中的异常实例永远非null:只要程序进入catch(NumberFormatException e)代码块,JVM必然会传入一个有效的异常对象,所以你写的if(e != null)和else if(e == null)完全是多余的判断,没有任何实际意义。
  2. 正常执行逻辑的位置错误:代码正常运行(未抛出异常)的逻辑,不应该放在catch块的分支里,而是要放在try块之后、catch块之外的位置。

修正后的代码

String o = "";
try {
    // 这里写处理o的业务逻辑,比如尝试将字符串转为数字
    Integer.parseInt(o);
} catch(java.lang.NumberFormatException e) {
    // 进入此块说明确实触发了数字格式异常,直接输出错误信息
    System.out.println("Incorrect input at: " + o);
}
// 正常执行的逻辑放在这里,仅当try块无异常时才会执行
System.out.println("Working fine!");

修正后逻辑说明

  • 如果try块中的代码抛出NumberFormatException,程序会进入catch块,输出错误提示。
  • 如果try块中的代码正常执行(没有抛出异常),程序会跳过catch块,直接执行后续的正常逻辑输出。

内容的提问来源于stack exchange,提问作者Eagle32349

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:52:17