请教一下,目标是通过注入异常走到catch,往这个方法computeIfAbsent注入不生效。
代码段如下private Integer generateRandom(String factorName, String factorScript) { try { Random random = randomMap.computeIfAbsent(factorName, k -> new Random()); return random.nextInt(Integer.parseInt(factorScript)) + 1; } catch (Throwable throwable) { log.error("factorName:{},factorScript:{},生成随机数异常:", factorName, factorScript, throwable); return defaultRandom.nextInt(Integer.parseInt(factorScript)) + 1; } }
故障场景用的java异常,类名是java.util.Map 方法名是computeIfAbsent exception是java.lang.Exception
类名必须是实现类 那类名写 java.util.concurrent.ConcurrentHashMap 另外,看下应用用户目录下/logs/sandbox/sandbox.log 日志有没有对 java.util.concurrent.ConcurrentHashMap 类做 transform
此答案来自钉钉群“ChaosBlade开源讨论群"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。