Java 眨眼吞咽异常

Java 眨眼吞咽异常,java,jaxb,apache-wink,Java,Jaxb,Apache Wink,我正试图在WinkforJAXB/jackson中实现对枚举类型的一些验证 我有一个枚举,它接受一些值。我想允许null,即不在xml/json中设置它,但我还想检查无效值并给出一个错误 我发现默认情况下,如果我提供的值不在枚举中,jaxb/wink只返回null,因此我尝试使用setter来允许输入验证。使用Level.valueOf(newLevel)尝试将提供的字符串转换为值会引发异常,并给出堆栈跟踪和http错误。 这是可以的,但我真正想要的是一个自定义异常,这样我就可以对错误响应的编组

我正试图在WinkforJAXB/jackson中实现对枚举类型的一些验证

我有一个枚举,它接受一些值。我想允许null,即不在xml/json中设置它,但我还想检查无效值并给出一个错误

我发现默认情况下,如果我提供的值不在枚举中,jaxb/wink只返回null,因此我尝试使用setter来允许输入验证。使用Level.valueOf(newLevel)尝试将提供的字符串转换为值会引发异常,并给出堆栈跟踪和http错误。 这是可以的,但我真正想要的是一个自定义异常,这样我就可以对错误响应的编组进行一些控制。我试着扔了一个,但它被(我想)眨眼吞没了

除了使用一次性而不是异常,还有什么方法可以实现这一点吗

enum Level {BASIC, ADVANCED};

@XmlAttribute
public void setLevel(String newLevel) throws MyException {
    if (newNodeLevel != null) {
        try {
            this.level = Level.valueOf(newLevel);
        } catch (IllegalArgumentException e) {
            throw new MyException("level invalid");
        }
   }
}