论坛首页 Java企业应用论坛

eclipse jdt 编译的bug

浏览 1446 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (11)
作者 正文
   发表时间:2010-11-26   最后修改:2010-11-26
先上代码
class MyException extends Exception
{
    private static final long serialVersionUID = 1L;
}

public class UnusedTest
{
    static boolean b = false;

    static void method() throws MyException
    {
        if (b)
        {
            throw new MyException();
        }
    }

    public static void main(String[] args)
    {
        Object o = null;
        try
        {
            while (true)
            {
                method();
                o = new Object();
                b = true;
            }
        }
        catch (MyException e)
        {
        }
        if (o != null)
        {
            System.out.println("After catch!");
        }
    }
}


eclipse 好像使用内部的jdt编译的,编译的时候
 if (o != null)
        {
            System.out.println("After catch!");
        }

会被认为是deadcode忽略掉,但javac可以正确编译。 不知能否设置eclipse 使用系统的javac来编译。



后记:
刚刚向jdt小组提交bug,他们说已经在3.6.1版本中修复了, 我用的是3.6.0
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics