JUnit-捕获@After部分中的异常

JUnit-捕获@After部分中的异常,junit,exception-handling,try-catch,Junit,Exception Handling,Try Catch,我有一个场景,其中一些测试可以抛出不同的异常 @测试 公共设备()无效{ device.addDevice();//这可能引发异常1 设备验证状态(“就绪”); device.open();//这可能引发异常2 设备验证状态(“打开”); } @试验 公共测试(){ device.act();//这可能引发异常3 设备验证状态(“就绪”); } @之后 公共无效拆卸(){ //在这里处理异常 } 我想在@After部分中处理这些异常,而不使用try,catch包装测试 那可能吗?不,不可能 无

我有一个场景,其中一些测试可以抛出不同的异常

@测试
公共设备()无效{
device.addDevice();//这可能引发异常1
设备验证状态(“就绪”);
device.open();//这可能引发异常2
设备验证状态(“打开”);
}
@试验
公共测试(){
device.act();//这可能引发异常3
设备验证状态(“就绪”);
}
@之后
公共无效拆卸(){
//在这里处理异常
}
我想在
@After
部分中处理这些异常,而不使用
try
catch
包装测试


那可能吗?不,不可能

无论如何,您都可以使用try-catch块来结束测试。然后可以将异常存储到成员变量中,而不是处理它。
@After
方法中,您可以检查异常是否为null。

由于您的评论,您使用此代码进行了数百次测试,我假设这是设置逻辑,实际上应该在
@Before
方法中

因此,您可以使用before和after方法指定外部资源规则:

before()
方法中执行设置、捕获和存储异常,并在
after()
方法中处理异常


但是以后处理异常有意义吗?如果设置失败,您能成功运行测试用例吗?

已经考虑过了,但我有数百个测试,我正试图避免这种解决方案。在抽象类中的
@Before
方法中执行这种逻辑怎么样?您的测试类是否可能继承该类?不确定我是否在跟踪您。。。@Before如何帮助我呢?您可以在一个由所有测试类继承的方法中提取引发异常的代码。所以你只需要做一次,这是不可能的,每次测试的代码都不一样