Best way to check whether a certain exception type was the cause (of a cause, etc …) in a nested exception?

后端 未结 8 1275
误落风尘
误落风尘 2021-02-03 21:05

I am writing some JUnit tests that verify that an exception of type MyCustomException is thrown. However, this exception is wrapped in other exceptions a number of

8条回答
  •  深忆病人
    2021-02-03 21:29

    If you are using Apache Commons Lang, then you can use the following:

    (1) When the cause should be exactly of the specified type

    if (ExceptionUtils.indexOfThrowable(exception, ExpectedException.class) != -1) {
        // exception is or has a cause of type ExpectedException.class
    }
    

    (2) When the cause should be either of the specified type or its subclass type

    if (ExceptionUtils.indexOfType(exception, ExpectedException.class) != -1) {
        // exception is or has a cause of type ExpectedException.class or its subclass
    }
    

提交回复
热议问题