private boolean exceptionIsCompatibleWith(Throwable excpt) {
        // Check only if the system allows us to do it.
        if (!SystemSpecifics.willCheckExceptionIntegrity()) {
            return true;
        }

        Class<?> checkedClass = excpt.getClass();
        if (RuntimeException.class.isAssignableFrom(checkedClass)) {
            return true;
        } else {
            for (Class<?> throwable : method.getExceptionTypes()) {
                // Notice that there's no real need for a class checker here
                // since we deal with exceptions, which are pretty "rough"
                // classes.
                if (throwable.isAssignableFrom(checkedClass)) {
                    return true;
                }
            }
        }

        return false;
    }