gpt4 book ai didi

java - Aspectj 声明错误无法正常工作

转载 作者:搜寻专家 更新时间:2023-11-01 03:24:49 24 4
gpt4 key购买 nike

我正在 try catch 方法签名更改并在发生时抛出错误。但是声明错误没有按预期工作

@DeclareError("call(* a.b.C.method(..)) && !call(* a.b.C.method(int))")
public static final String errorMsg= "Signature error";

这总是匹配对此方法的调用。

但是如果我将这个切入点移动到@Before,那么它将不会匹配,除非方法签名已更改。

知道为什么 @DeclareError 和 @Before 之间关于切入点的不同行为吗?

谢谢

最佳答案

奇怪 - 它适用于我的环境。 (带有 AspectJ 插件的 Eclipse)

@Aspect
public class GetNameOverrider {

@DeclareError("call(* a.b.C.method(..)) && !call(* a.b.C.method(int))")
static final String errorMsg= "Signature error";
}

如果我这样做,会在编译时给我一个错误:

a.b.C c = new a.b.C();
c.method(new Integer(2)); <--- no Error
c.method(2); <--- no Error
c.method("test"); <--- Error

=============================

ErrorDescription Resource Path Location Type
"Signature error" Main.java /Stackoverflow/src/test line 12 AspectJ Problem

关于java - Aspectj 声明错误无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17448179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com