zoukankan      html  css  js  c++  java
  • Java中String转int型的方法以及错误处理

    应要求,本周制作了一个判断一个年份是否是闰年的程序。逻辑很简单,这里就不贴代码了。可是,在这次程序编写中发现了一个问题。

    在输入年份时,如果输入1)字母2)空3)超过Int上限时,就会抛exception。

    问题出在String转Int型时。

    首先,在java中String转换为Int主要有两种方法

    1.Integer.parseInt(s)

    2.Integer.valueOf(s).intValue();

    这两种方法略有不同,之后再跟大家分析。

    首先我使用第一种方法,当测试数据为正常的年份时,是没有问题的,可当你测试非正常数据时就会抛出exception:

    主要为NumberFormatException:

      1)当你输入为字母时,也就是内容不是数字时,如abcd

      2)当你输入为空时

      3)当你输入超出int上限时

    然后我使用了第二种方法,得到的结果与第一种相同。

    那怎么解决这种问题呢,使用户能正常输入内容

    首先我想到的是使用try—catch

    是程序能够捕捉到exception,并作相应处理

      以上代码就是当输入数据无法转换成int型时,弹出请输入正确年份的提示

    TIPS:

    1.Integer.parseInt(s)与Integer.valueOf(s).intValue()到底有什么不同呢,经过试验感觉并没有太大差异,但是Integer.valueOf(s)与Integer.parseInt(s)就有很大不同了,主要在于返回值不同

      Integer.parseInt(s)返回值为Int型

      Integer.valueOf(s)返回值为Integer,区别在于后者能够使用Integer的一些方法。

    2.在做软件测试时不能仅仅用正常数据进行测试,因为对于软件从业人员而言,有很多观念根深蒂固,而一般使用者并没有这些观念,如果你不考虑这些使用者,那你的程序就会出现很多问题,就像这个闰年程序一样

    3.try—catch在使用中真的用处很大,一个程序执行中有很多情况下会出exception,而这个方法能够帮助我们作相应处理。

  • 相关阅读:
    spring boot单元测试之七:用mockmvc模拟session(spring boot 2.4.3)
    spring boot单元测试之六:用mockmvc模拟cookie(spring boot 2.4.3)
    sql join 注意事项
    见路不走,即见因果
    presto sql 经典sql 应用
    别拿你的职业去拔高你个人的规格, 让人轻看
    《遥远的救世主》经典台词
    《卜算子·自嘲》
    天道连续剧 丁元英语录
    shell diff + kettle = mail 预警
  • 原文地址:https://www.cnblogs.com/shuhaoz/p/4396112.html
Copyright © 2011-2022 走看看