我目前正在实现一个系统,我在其中使用aspectJ来检查是否允许用户调用方法。我的方法看起来像这样:
@Constrained(
mayUsers = {Constrained.Types.ADMIN,
Constrained.Types.SELLER, Constrained.Types.ORGANIZER}
)
public boolean save() {
/* code */
}
我可以使用AspectJ拦截消息调用并进行检查,但如果不允许调用,我想抛出异常。如果我只是抛出Exception
,则该方法的用户不会被告知可能被抛出的Exception
。
现在我的问题是:
是否可以强制执行@Constrained
注释的每个方法都会抛出特定的Exception
?
答案 0 :(得分:2)
是否可以强制执行具有该方法的每个方法 @Constrained Annotation会抛出特定的异常吗?
否 现在无法做到这一点。但是您可以做的是,在运行时,您可以检查具有此批注的所有方法是否必须抛出异常。如果任何方法没有声明throws子句,你可以抛出一些Illegal*Exception
告诉开发人员每个方法必须声明throws子句。
您有两种解决方案: