public static ThrowableType getThrowableType(Throwable cause) {
        final ThrowableAnnotation annotation =
                cause.getClass().getAnnotation(ThrowableAnnotation.class);
        return annotation == null ? ThrowableType.RecoverableError : annotation.value();
    }
@Test
    void testThrowableType_Recoverable() {
        assertThat(ThrowableClassifier.getThrowableType(new Exception("")))
                .isEqualTo(ThrowableType.RecoverableError);
        assertThat(ThrowableClassifier.getThrowableType(new TestRecoverableErrorException()))
                .isEqualTo(ThrowableType.RecoverableError);
    }