开发者社区 > 云原生 > 中间件 > 正文

ChaosBlade注入java进程内异常时如果注入业务自定义异常,必须要是带一个入参的构造方法吗?

ChaosBlade注入java进程内异常时如果注入业务自定义异常,必须要有一个带一个入参或没有入参的构造方法吗?如果不更改业务代码,blade似乎不支持传入参

展开
收起
三分钟热度的鱼 2024-02-01 16:26:12 123 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,当使用ChaosBlade注入自定义异常时,通常需要确保该异常类具有一个无参构造方法或一个带有单个参数的构造方法。这是因为ChaosBlade在运行时动态生成异常对象,并通过Java的反射机制调用相应的构造方法来创建异常实例。

    如果自定义异常类没有合适的构造方法,ChaosBlade可能无法成功注入该异常。在这种情况下,你可以考虑修改自定义异常类,为其添加一个无参构造方法或一个带有单个参数的构造方法。

    以下是一个示例,展示了如何为自定义异常类添加一个无参构造方法和一个带单个参数的构造方法:

    public class CustomException extends Exception {
        // 无参构造方法
        public CustomException() {
            super();
        }
    
        // 带有单个参数的构造方法
        public CustomException(String message) {
            super(message);
        }
    }
    

    通过添加这些构造方法,你可以确保ChaosBlade能够成功注入自定义异常,而无需更改业务代码。

    2024-02-02 14:20:21
    赞同 展开评论 打赏
  • 可以翻源码 debug 下。此回答整理自钉群“ChaosBlade开源讨论群”

    2024-02-01 16:52:36
    赞同 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载