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 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题