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

在Java中未获取AlithmeticException[duplicate]

窦成荫
2023-03-14

我正试图运行下面的程序,并期望算术异常因为我们是除以零的double值,但得到无穷大作为输出

这是程序下面。但如果我们使用int而不是double,则会得到算术异常

public static void main(String z[]) {
    Double a = 10.0;
    Double b = 0.0;
    System.out.println(a/b);
}
public static void main(String z[]) {
    int a = 10;
    int b = 0;
    System.out.println(a/b);
}

输出:

Exception in thread "main" java.lang.ArithmeticException: / by zero
at (Test.java:94)

谁能解释一下为什么我们会以双倍的价值获得无穷大?

共有1个答案

金成济
2023-03-14

请参阅语言规范:

如果整数除法中的除数值为 ;0,则抛出 ;ArithmeticException ;。

...

    null

浮点除法可以有一个非例外的结果,因为有一个特殊的值来指示它。整数除法没有这样的特殊值,因此返回任何整数结果都将是不正确的;唯一的选择是抛出一个异常。

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

  • 问题内容: 该代码用于返回我的本地IP地址为192.xxx.x.xxx,但现在它返回127.0.0.1。请帮助我为什么相同的代码返回不同的值。在Linux OS上需要注意些什么吗? 问题答案: 127.0.0.1是回送适配器-这是对(有些恶意的)问题“我的IP地址是什么?”的正确答案。 问题是该问题有 多个 正确答案。 编辑:的文档说: 如果有安全管理器,则使用本地主机名并以-1作为其参数来调用其

  • 问题内容: 如何在Java中获取char的UTF8代码?我有char’a’,我想要值97我有char’é’,我想要值233 这是更多值的表格 我试过了,但结果却是10分而不是97分,为什么? 这似乎很基本,但是任何帮助将不胜感激! 问题答案: 实际上是包含该字符的unicode值(准确地说是UTF-16-您需要 两个 s来表示BMP之外的字符)的数字类型。您可以用它做的所有事情都可以用。 尝试将字

  • 问题内容: 不使用任何外部库,将网站的HTML内容提取为String的最简单方法是什么? 问题答案: 我目前正在使用此: 但不确定是否有更好的方法。

  • 我正在使用JUnit进行练习,这是我要测试的简单方法 无论如何,运行此测试将导致失败... 编辑:ok刚刚检查了一些“奇怪”的东西,这段代码实际上给了我一个例外: 不管怎么说,这一个: 给了我 这就是测试失败的原因。那么...如何在JUnit中测试这种行为呢?