当前位置: 首页 > 知识库问答 >
问题:

Java未捕获/显示AlithmeticException[duplicate]

景温书
2023-03-14
        double sum = 0.0;
        double average = 0.0;
        ArrayList<String> list = getCollectionFromFile();
        for(String strValue : list) {
            try {
                double value = Double.parseDouble(strValue);
                sum+=value;
            }
            catch(NumberFormatException e) {
                System.out.println("Error! Non-numeric carachters detected!");
            }
        }
try {
            average = sum/getNRows();
        }
        catch(ArithmeticException e) {
            System.out.println("Error! File is empty! ArithmeticException!");
        }
        return average;
//method ends

但是当我测试在一个空文件上调用average()的程序时,它没有捕获AlithmeticException而是输出“nan”。我应该怎么做才能捕捉到显示文件为空的东西,并通知用户这没有意义/调用average()是错误的?

共有1个答案

公羊灿
2023-03-14

整数除法0/0将抛出arithmeticexception,但如果任何操作数是浮点数,则不会发生这种情况。

由于Java使用IEEE754浮点数,因此允许这种划分。

如果零除以零(浮点除法),结果是nan(不是数字),这不会引发异常。

 类似资料:
  • 我正试图运行下面的程序,并期望因为我们是。 这是程序下面。 输出: 谁能解释一下为什么我们会以双倍的价值获得无穷大?

  • 问题内容: 我们正在考虑用Java编写一种软件,该软件可以在运行期间记录监控什么内容。您对如何有效捕获监视器输出有任何建议吗? 占用的CPU越少,我们捕获屏幕的频率就越高,并且在不干扰其他正在运行的应用程序的情况下,生成的视频越流畅。 如果复制屏幕捕获部分不太困难,则Java中的现有开放源代码程序将起作用。我希望它不需要调用另一种编程语言。我们会看到。 问题答案: 我不确定是否需要框架。 请查阅该

  • 本文向大家介绍Java Exception 捕获和显示实例详解,包括了Java Exception 捕获和显示实例详解的使用技巧和注意事项,需要的朋友参考一下 Java Exception 捕获和显示实例详解   在进行Java B/S架构开发时,经常有这样的场景:后端处理业务逻辑,前端负责展示,当后端处理出现异常时,如何把错误信息展示给前台呢?错误信息栈通常很多,对开发人员查找问题比较方便,但对

  • 问题内容: 为什么Java中的某些异常未被捕获?这是代码由于没有处理的异常而完全失败。(Java版本1.4)。 我得到一个 但这有效 我懂了 我以为捕获异常会捕获所有异常?如何捕获Java中的所有异常? 问题答案: 因为某些异常不是源自-例如和。 基本上,类型层次结构是: 只能抛出派生类,因此,如果您抓住,那实际上就可以抓住一切。 ,以及任何异常,从获得 其他 比那些源自数作为 检查的异常 -他们

  • 为什么Java中的一些异常不被捕获?这是完全失败的代码,有一个未处理的异常。(Java版本1.4)。 我在线程“main”java中得到了一个 但这行得通 我在java中没有发现任何方法错误。lang.NoSuchMethodError: 我以为捕获异常会捕获所有异常?如何捕获java中的所有异常?

  • 我在做一个函数来禁止一个成员在JDA中使用他的/她的id<我做了这个: 但是,它不接受错误。我已经尝试删除printStackTrace,但是错误仍然会出现。"Done"和"EEE"不会被打印出来。 此外,它确实接受所有其他错误,但不接受这个错误。 这里给出了错误的一部分