provider 服务端配置 serialization="kryo" 自定义异常类抛错时，消费端 kryo 序列化后捕获不到异常,以下是报错信息：

```
method:org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:148)
 [DUBBO] Decode rpc result failed: com.esotericsoftware.kryo.KryoException: Class cannot be created (missing no-arg constructor): java.lang.StackTraceElementSerialization trace:stackTrace (org.apache.dubbo.rpc.RpcException), dubbo version: 2.7.0, current host: 127.0.0.1
java.io.IOException: com.esotericsoftware.kryo.KryoException: Class cannot be created missing no-arg constructor): java.lang.StackTraceElementSerialization trace:stackTrace (org.apache.dubbo.rpc.RpcException)
```

我们自己的解决方案是在 dubbo-serialization/dubbo-serialization-kryo/src/main/java/org/apache/dubbo/common/serialize/kryo/utils/AbstractKryoFactory.java 类中添加：

```java
kryo.addDefaultSerializer(Throwable.class, new JavaSerializer());
```

![image](https://user-images.githubusercontent.com/5102157/58782797-069d0d80-8612-11e9-91cf-c777dc944391.png)

kryo.register(BitSet.class);
        kryo.register(StringBuffer.class);
        kryo.register(StringBuilder.class);
        kryo.register(Object.class);
        kryo.register(Object[].class);
        kryo.register(String[].class);
        kryo.register(byte[].class);
        kryo.register(char[].class);
        kryo.register(int[].class);
        kryo.register(float[].class);
        kryo.register(double[].class);
        for (Class clazz : registrations) {
            kryo.register(clazz);
        }
        SerializableClassRegistry.getRegisteredClasses().forEach((clazz, ser) -> {
            if (ser == null) {
                kryo.register(clazz);
            } else {
                kryo.register(clazz, (Serializer) ser);
            }
        });
        return kryo;
    }
    public void setRegistrationRequired(boolean registrationRequired) {
        this.registrationRequired = registrationRequired;
    }
    public abstract void returnKryo(Kryo kryo);
    public abstract Kryo getKryo();
}