Codeoftrip 2017-07-23 03:42 采纳率: 60%
浏览 1776
已采纳

异常处理。。在主函数中调用某个方法,为什么没有抓住方法中写的异常?

public class Computer {
double c ;
public void div(double a,double b){

    try{
         c = a/b;
    }
    catch(NumberFormatException e){
        e.printStackTrace();
        System.out.println("格式化数据异常。");
    }
    catch(ArithmeticException e){
        e.printStackTrace();
        System.out.println("出现算术异常。");
    }
    catch(Exception e){
        e.printStackTrace();
        System.out.println("出现其他异常。");
    }
    System.out.println("两个数的商是:"+c);
}

}
public class test {
public static void main(String[] args) {
Computer c = new Computer();
c.div(0,0);
}
}

 运行结果
 两个数的商是:NaN

 为什么没有抓住异常呢?




  • 写回答

2条回答 默认 最新

  • cloudyzhao 2017-07-23 04:38
    关注

    NaN的意思是不存在,无意义.
    double中的0不是真正的0或0.0 而是一个很长的,可能是0.000000000001或其它,所以一个正数除以0.0结果就得很大很大。负数除以0.0, 0.0/0.0 一样道理。 浮点数是使用二进制数据的科学计数法表示,所以不可能精确表示一个浮点数
    谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败