public static void setExceptionPredicate(Predicate<Throwable> exceptionPredicate) {
        AssertUtil.notNull(exceptionPredicate, "exception predicate must not be null");
        Tracer.exceptionPredicate = exceptionPredicate;
    }
@Test
    public void setExceptionPredicate() {

        Predicate<Throwable> throwablePredicate = new Predicate<Throwable>() {
            @Override
            public boolean test(Throwable throwable) {
                if (throwable instanceof TraceException) {
                    return true;
                } else if (throwable instanceof IgnoreException) {
                    return false;
                }
                return false;
            }
        };
        Tracer.setExceptionPredicate(throwablePredicate);
        Assert.assertTrue(Tracer.shouldTrace(new TraceException()));
        Assert.assertFalse(Tracer.shouldTrace(new IgnoreException()));
    }