【问题标题】:Junit exception handling in before之前的junit异常处理
【发布时间】:2021-12-31 10:13:42
【问题描述】:

我的问题是,我不知道如何处理 Junit4 的 @before 块中的异常。 例如:

@Before
public void init() throws Exception{
    b=new FirstNationalBank();
    acc1=b.openAccount();
    acc2=b.openAccount();
    try{
    b.deposit(acc1, 1500);
    b.deposit(acc2, 12000);
    }catch(Exception ex) {
        throw new Exception();
    }
}

我这样做的方式似乎不正确,或者可能是正确的,但我不确定这是否会引发错误,或者当引发意外异常或任何类型的异常时它会如何反应。

你会如何处理它?

【问题讨论】:

  • 捕获任何类的异常,然后抛出基类的异常(没有消息)是没有用的;它所做的只是隐藏有用的诊断信息。
  • 但我不确定,尝试一下是件很重要的事。 (框架会处理它)。

标签: java exception junit junit4


【解决方案1】:

在这里捕获和重新抛出是没有意义的,在这种情况下,您将丢失告诉您出了什么问题的原始堆栈跟踪。随便扔东西吧:

@Before
public void init() throws Exception{
    b=new FirstNationalBank();
    acc1=b.openAccount();
    acc2=b.openAccount();
    b.deposit(acc1, 1500);
    b.deposit(acc2, 12000);
}

测试框架将捕获并报告任何异常。

如果您确实需要捕获某些内容并重新抛出,请记住将原始异常传递给新异常,一个 throwable 有一个名为 cause 的成员,它可以保存另一个 throwable。这样您就可以保留显示发生了什么的原始堆栈跟踪。

【讨论】:

    猜你喜欢
    • 2016-04-13
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2019-03-31
    • 2011-01-02
    • 1970-01-01
    相关资源
    最近更新 更多