class A
{

public int a;

public static void main(String[] args)
{
Double c = 1.0;
Double d = 0.0;
try
{
Double a = c/d;
}
catch(ArithmeticException e)
{
e.printStackTrace();
}


}
}

解决方案 »

  1.   

    class A
    {

    public int a;

    public static void main(String[] args)
    {
    float c = 1.0f;
    float d = 0.0f;
    try
    {
    float a = c/d;
    }
    catch(ArithmeticException e)
    {
    e.printStackTrace();
    }


    }
    }
      

  2.   

    你这个肯定要报错,应为你使用了Double类而并非基本类型中的double类型,而如果你使用的是Double类,那么在初始化的时候是不应该使用Double c = 1.0;这样的方式,而应该是Double c = new Double(1.0);的构造函数来构造一个对象实例
      

  3.   

    楼主,怎么会没报错呢,明明白白的有报错啊!Double是类啊,我测试过你的JavaCode,有报错的。
    ------------------
    TO:arsaluo(热血年华)
    如果 public int a 定义为final属性则报错。
      

  4.   

    把Double改成double在jdk1.5下面也不报错。
    逻辑上应该是除数为零报错啊
      

  5.   

    Double 类型 是对象 不能 Double c=1.0 这附值 改了就OK了
      

  6.   

    没错啊,报什么错,结果是Infinity。JDK1.5
      

  7.   

    这个Double a=1.0d;跟String类的那个String s="ssss";有点像。
      

  8.   

    class  zhengchu
    {
    int a; public static void main(String[] args) 
    {

    Double c = new Double(1);       Double d = new Double(0);
    //Double b = 1.0;
    //Double c = 0.0;
    try{
    System.out.println("==c=="+c.doubleValue());
                System.out.println("==d=="+d.doubleValue()); Double f = new Double(c.doubleValue()/d.doubleValue());
     System.out.println("==f=="+f.doubleValue());

    }

    catch(Exception e)
    {
    System.out.println("==errors=="+e.toString());
    }
    }
    }
    执行结果是==c==1.0
    ==d==0.0
    ==f==Infinity
      

  9.   

    arsaluo(热血年华)写的程序也没有错误信息提示,不知道是不是jdk版本的问题
      

  10.   

    你可以参考一下SCJP认证的教材,里面有这样的内容。
    我记得对于double和float是不会报被0除的错误的,会得到是无穷大或无穷小的值。
    而对于int等是会报错的。
      

  11.   

    别争了,看看java.lang.Double/Float代码最上面几行,就知道了(public static final double ...)
    http://community.csdn.net/Expert/topic/4314/4314341.xml?temp=.4971735