1

我目前正在实现一个系统,在该系统中我使用 aspectJ 来检查是否允许用户调用方法。我的方法看起来像这样:

@Constrained(
    mayUsers = {Constrained.Types.ADMIN, 
    Constrained.Types.SELLER, Constrained.Types.ORGANIZER}
)
public boolean save() {
    /* code */
}

我可以使用 AspectJ 拦截消息调用并进行检查,但如果不允许调用,我想抛出异常。如果我只是抛出该Exception方法的用户,则不会被告知Exception可能会抛出哪个。

现在我的问题是:

是否可以强制具有@Constrained注释的每个方法都抛出一个特定的Exception

4

1 回答 1

2

是否可以强制每个具有 @Constrained 注解的方法都抛出一个特定的异常?

,现在不可能这样做。但是你可以做的是,在运行时你可以检查所有有这个注解的方法都必须抛出异常。如果任何一个方法没有声明 throws 子句,你可以抛出一些Illegal*Exception来告诉开发者每个方法都必须声明 throws 子句。

你有两个解决方案:

于 2013-11-12T11:39:10.320 回答