当前位置: 首页 > 面试题库 >

如何避免Java中的数字格式异常?

司寇照
2023-03-14
问题内容

在我日常的Web应用程序开发中,有许多情况需要我们从用户那里获取一些输入。

然后将这个数字输入传递给可能是应用程序的服务层或DAO层。

由于它是一个数字(整数或浮点数),在某个阶段,我们需要将其转换为整数,如以下代码片段所示。

String cost = request.getParameter("cost");

if (cost !=null && !"".equals(cost) ){
    Integer intCost = Integer.parseInt(cost);
    List<Book> books = bookService . findBooksCheaperThan(intCost);  
}

在上述情况下,在这里,我必须检查输入是否不为null或是否没有输入(空白),或者有时是否有非数字输入的可能性,例如blah,test等。

处理此类情况的最佳方法是什么?


问题答案:

只需捕获您的异常并进行适当的异常处理即可:

if (cost !=null && !"".equals(cost) ){
        try {
           Integer intCost = Integer.parseInt(cost);
           List<Book> books = bookService . findBooksCheaperThan(intCost);  
        } catch (NumberFormatException e) {
           System.out.println("This is not a number");
           System.out.println(e.getMessage());
        }
    }


 类似资料:
  • 问题内容: 一旦我的代码进入我的循环,它就会生成is close异常。是什么导致此异常,我该如何纠正? 编辑: 我在代码中注意到我与另一个嵌套循环,两个结果集都来自同一数据库,这是一个问题吗? 问题答案: 听起来好像您在遍历第一个语句的结果集之前在同一连接中执行了另一个语句。如果要嵌套处理来自同一数据库的两个结果集,则说明您做错了什么。这些集合的组合应在数据库侧完成。

  • 问题内容: 在使用java时经常会发生数组越界异常,它是如何发生的?怎么避免? 问题答案: 这异常通常是我们所说的数组下标越界,索引为负或大于或等于数组的大小。 数组的下标从0开始,最大是:array.length,例如,下面的代码误认为数组从1开始: 应该这样来做:

  • 我已经在我的应用程序中编辑文本以操纵产品数量,但是如果我要更改数量,那么问题就是在那个时候获得NPE。要更改编辑文本中的数量,我需要删除现有内容并需要添加新数量,请检查以下代码

  • 问题内容: 要避免很多。 有没有好的替代方法? 例如: 当不知道对象是否存在时,可以避免使用。 问题答案: 在我看来,这似乎是一个相当普遍的问题,初级和中级开发人员往往会在某个时候遇到这些问题:他们要么不知道,要么不信任他们所参与的合同,并且防御性地检查了null。另外,在编写自己的代码时,他们倾向于依靠返回空值来表示某些内容,因此要求调用者检查空值。 换句话说,在两种情况下会出现空检查: 如果为

  • 本文向大家介绍Java中避免空指针异常的方法,包括了Java中避免空指针异常的方法的使用技巧和注意事项,需要的朋友参考一下 没人会喜欢空指针异常!有什么方法可以避免它们吗?或许吧。。 本文将讨论到以下几种技术 1.Optional类型(Java 8中新引入的) 2.Objects类(Java 7中原有的) Java 8中的Optional类 它是什么? 1.Java 8中新引入的类型 2.它是作为

  • 我有zuul网关服务器,没有eureka服务发现。 我使用下面显示的yml文件连接微服务和zuul。 当我执行URL超时时,会发生异常