如何使用 lombok 在 @NonNull 异常中抛出自己的自定义消息?

How can I throw my own custom message in @NonNull exception using lombok?

开始使用lombok项目,心存疑惑。假设我有一个带有一个参数 method(@NonNull arg) 的方法。如果我使用空参数 method(null) 调用该方法,我将得到以下异常:java.lang.NullPointerException: arg

但是假设我希望异常消息说的是 arg cannot be null 而不是另一个(不管该消息的含义如何,我只想知道如何使用 @NonNull 注释自定义异常消息).

谢谢!

龙目岛@NonNull不允许这样做。
尝试使用 javax.validation.constraints 包中的 @NotNull(message = "arg cannot be null")

根据 Lombok's documentation@NonNull 注释只是在函数顶部添加一个 if 语句来检查它是否为 null。所以如果你不想使用任何其他库,你可以自己做:

class NullArgumentException extends IllegalArgumentException {

    public NullArgumentException() {
        super("arg cannot be null");
    }
}

public class Test {

    public static void main(String[] args) {

        try {
            foo(null);
        } catch(IllegalArgumentException e) {
            // or System.out.println(e.getMessage())
            e.printStackTrace();
        }
    }

    public static void foo(Integer i) throws IllegalArgumentException {
        if(i == null) throw new NullArgumentException();
    }
}

你不能。

但是,您可以将 lombok 配置为抛出 IllegalArgumentException。那将有消息 arg is null.

要配置它,请将 lombok.nonNull.exceptionType = IllegalArgumentException 添加到您的 lombok.config 文件。

披露:我是一名龙目岛开发者。