迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java 中除以零异常

作者:迹忆客 最近更新:2023/09/17 浏览次数:

本文将演示在 Java 程序中除以零时会发生什么。除以零是未定义的操作,因为它在常规算术中没有意义。

虽然它经常与编程错误有关,但情况并非如此。根据 Java 除法运算定义,我们可以看一个被零整数除的场景。


Java 中整数除以零的异常情况

将实数除以零是一个数学过程,看起来相对容易,但缺乏明确和确凿的解决方案。因为定义的任何努力都会导致矛盾,所以这个操作的结果在技术上被认为是未定义的。

因为这是除法运算的一个特定示例,Java 将其识别为异常情况,并在运行时遇到它时抛出 ArithmeticException

public class dividebyzero {
    public static int divide(int f, int g) {
        int h = f / g;
        return h ;
    }
    public static void main(String... args) {
        int d = 8, r = 0;
        int e = divide(d, r);
        System.out.println(e);
    }
}

输出:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at dividebyzero.divide(dividebyzero.java:3)
    at dividebyzero.main(dividebyzero.java:8)

在 Java 中解决除以整数零异常

处理除以零的正确方法是确保 divisor 变量永远不会是 0

当输入无法控制,并且方程中存在零的可能性时,将其视为预期选择之一并相应地解决它。

这通常需要在使用除数之前检查除数的值,如下所示:

public class dividebyzero {
    public static int divide(int f, int g) {
        int h = f / g;
        return h ;
    }
    public static void main(String... args) {
        int d = 8, r = 0;
        if (r != 0) {
            int e = divide(d, r);
            System.out.println(e);
        } else {
            System.out.println("Invalid divisor: division by zero can't be processed)");
        }
    }
}

输出:

Invalid divisor: division by zero can't be processed)

Java 包含一个名为 ArithmeticException 的特殊异常,用于处理计算中出现的异常情况。

在处理整数除以零等异常情况时,非常精确和小心是避免 ArithmeticException 的关键。


Java 中除以浮点零异常

顺便说一下,浮点值也有 -0.0;因此,1.0/ -0.0 是 -Infinity。整数运算缺少这些值中的任何一个,而是抛出一个异常

例如,与 java.lang.ArithmeticException 不同,以下情况除以零时不会产生异常。它表达的是无限

int x = 0;
double y = 3.2500;
System.out.println((y/x));

这是因为你正在使用浮点数。Infinity 通过除以零返回,这与 not a numberNaN 相当。

如果你想避免这种情况,你必须在使用前测试 tab[i]。然后,如有必要,你可以抛出自己的异常

每当你除以浮点零时,Java 都不会抛出异常。当你除以整数零而不是双零时,这只会注意到运行时错误。

如果将 Infinity 除以 0.0,结果是 Infinity

0.0 是一个双精度字面量,不被视为绝对零。没有异常,因为双变量足够大,可以处理表示接近无穷大的数字。

你可以使用下面显示的代码行来检查所有可能导致非有限数字的值,例如 NaN0.0-0.0

if (Math.abs(tab[i] = 1 / tab[i]) < Double.POSITIVE_INFINITY){
    throw new ArithmeticException("Result is non finite");
}

你也可以自己检查,然后抛出异常。

try {
    for (int i = 0; i < tab.length; i++) {
        tab[i] = 1.0 / tab[i];
        if (tab[i] == Double.POSITIVE_INFINITY ||tab[i] == Double.NEGATIVE_INFINITY)
        { throw new ArithmeticException(); }
    }
    } catch (ArithmeticException xy) {
        System.out.println("ArithmeticException occured!");
}

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

JavaFX 文本旋转

发布时间:2023/09/21 浏览次数:96 分类:Java

本介绍了如何在 JavaFX 中旋转文本。可以使用 JavaFX.scene.text.Text 类创建文本节点,并在 JavaFX 中使用 setRotate() 来旋转文本。本文介绍了如何在 JavaFX 中旋转文本。

JavaFX 区域与窗格

发布时间:2023/09/21 浏览次数:94 分类:Java

本文介绍了 JavaFX 中区域和窗格之间的区别。Region 和 Pane 用于将可调整大小的子节点调整到它们的首选大小,而不是重新定位它们。本文介绍了 JavaFX 中 Region 和 Pane 之间的区别。

JavaFX 媒体播放器

发布时间:2023/09/21 浏览次数:115 分类:Java

本文演示了 JavaFX 媒体播放器的正确使用,使用 JavaFX 播放媒体文件。在本文中,我们将学习如何使用 JavaFX 在 Java 中制作媒体播放器。为此,我们将使用内置的 JavaFX 并手动进行设置。

JavaFX 方形按钮

发布时间:2023/09/21 浏览次数:126 分类:Java

本文介绍如何在 JavaFX 中创建方形按钮。可以通过扩展 Java 中的 ToolBar 类来创建方形按钮。本文介绍了如何在 JavaFX 中创建方形按钮。

JavaFX setFill() 方法

发布时间:2023/09/21 浏览次数:187 分类:Java

本教程演示了如何在 JavaFX 中使用 setFill() 方法。setFill() 方法用于在 JavaFX 中填充形状和其他元素的颜色。本教程演示了在 JavaFX 中使用 setFill() 方法。

JavaFX FXML 加载异常的解决方法

发布时间:2023/09/21 浏览次数:192 分类:Java

本文展示了如何解决 JavaFX FXML 加载异常。这也突出了导致此异常的原因。本文介绍导致 JavaFX FXML 加载异常的原因并提供快速解决方案。导致 JavaFX FXML 加载异常的原因 获得 JavaFX FXML 加载异常的

Java 将文本复制到剪贴板

发布时间:2023/09/21 浏览次数:96 分类:Java

本文讨论将文本从 Java 应用程序复制到剪贴板的方法。本文讨论将文本从 Java 应用程序复制到剪贴板。Java 提供了几个元素来显示 Java 应用程序中的文本。

在 Java 中捕获多个异常

发布时间:2023/09/21 浏览次数:167 分类:Java

本教程介绍了可以在 Java 中捕获多个异常的方法。今天我们将看看我们可以在 Java 中使用和捕获多个异常的方法。Java 中的异常发生在运行时发生不需要的事件时。

什么是 Java 中的空指针异常

发布时间:2023/09/21 浏览次数:122 分类:Java

这篇文章教你如何理解 Java 中的空指针异常。本文介绍了 Java 空指针异常以及如何处理它。我们已经包含了一些示例程序供你遵循。在 Java 中,任何引用变量的默认值都是指向内存位置但没有任

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便