如何使用 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
文件。
披露:我是一名龙目岛开发者。
开始使用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
文件。
披露:我是一名龙目岛开发者。