确定哪种类型的异常是可抛出的

Determine which type of exception is the throwable

这是目前有效的代码:

.whenComplete((r, throwable) -> {
    if (throwable != null) {
        logger.error("exception");              
    }
});

是否可以改为执行类似的操作,以确定可抛出的对象是否是某种类型的异常?

.whenComplete((r, throwable) -> {
    if (throwable == CertificateException) {
        logger.error("cert exception");             
    }
});

使用instanceof关键字查找类型

if (throwable instanceof CertificateException)

并且如果 throwable 像 ExceptionThrowable 那样被父级包围,那么使用 getCause()

if (throwable.getCause() instanceof CertificateException)