上一篇主要是了解了Dubbo的一些常用的比较重要的原生Filter,包括consumer和provider端的。
在项目开发中呢,我们经常会遇到一些异常,有时候我们会感觉有点懵,不明白设定的自定义异常我们捕获不道,抛出了我们不想要的异常信息,这一张我们就具体来看一下Dubbo的ExceptionFilter(异常处理)的实现。
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
try {
Result result = invoker.invoke(invocation);
if (result.hasException() && GenericService.class != invoker.getInterface()) {
try {
Throwable exception = result.getException();
// directly throw if it's checked exception
① if (!(exception instanceof RuntimeException) && (exception instanceof Exception)) {
return result;
}
// directly throw if the exception appears in the signature
try {