Java并不是算术异常

时间:2018-02-16 12:20:01

标签: java testng arithmeticexception

我有这个Java代码:

@app.route('/control/edituser/<int:id>',method=['post','get'])
def edit(id):
    qry=sqlsession.query(Enduser).filter(Enduser.id==id).first()
    form = UserForm(request.form, **qry)
    if form.validate_on_submit():
        form.populate_obj(qry)
        sqlsession.update(qry)
        sqlsession.commit()
    return redirect(url_for('page_newuser'))
 return render_template('newuser.html', form=form)

和TestNG单元测试此方法:

public class Calc {
    public int quotient(int a, int b){
        return a/b;
    }
}

在我的工作电脑上,我成功了

  

java.lang.ArithmeticException:/ by zero

消息,正如所料。

但是当我的同事在家用电脑上运行此测试时,提到的例外不是投掷和测试通过。

这种魔法怎么会发生?

P.S。 环境 操作系统:Windows 10 TestNG版本:6.13.1 Java版本:8(不知道确切的构建版本)

P.P.S。 删除目标文件夹和重建项目是非常有用的解决方案。看起来像IDE兑换旧项目源,并且在代码更改后没有刷新它们。

1 个答案:

答案 0 :(得分:1)

在过去,我经历过像你这样的事情。因为不同的JDK编译环境和/或JRE运行时环境。并且需要检查不同版本的TestNG。

通过添加几行代码来检查以打印Java属性。

Properties p = System.getProperties();
Enumeration keys = p.keys();
while (keys.hasMoreElements()) {
    String key = (String)keys.nextElement();
    String value = (String)p.get(key);
    System.out.println(key + ": " + value);
}

然后比较