gpt4 book ai didi

java - 处理自定义异常

转载 作者:行者123 更新时间:2023-11-29 08:26:24 27 4
gpt4 key购买 nike

我正在尝试创建一个自定义异常“UserNotFoundException”,当收到不存在的用户的 GET 请求时将抛出该异常。

class UserNotFoundException extends Exception {

public UserNotFoundException(Long id) {
super(id);
}
}

我知道 super(id) 不会工作,但我不知道如何处理这个问题。这里抛出异常:

@GetMapping("/users/{id}")
User one(@PathVariable Long id) {

return repository.findById(id)
.orElseThrow(() -> new UserNotFoundException(id));
}

感谢您的帮助。

最佳答案

您正在尝试调用不存在的父构造函数。

class UserNotFoundException extends Exception {

public UserNotFoundException(Long id) {
super(id);
}

}

Exception类为您提供以下构造函数:

public Exception()
public Exception(String message)
public Exception(String message, Throwable cause)
public Exception(Throwable cause)
protected Exception(String message, Throwable cause,
boolean enableSuppression,
boolean writableStackTrace)

如果您希望通过 id 查看消息你将不得不转换你的 LongString .

public UserNotFoundException(Long id) {
super(String.valueOf(id));
}

如果您打算利用 ExceptionHandler,您还可以为 UserNotFoundException 设置自定义字段

private Long id;
public UserNotFoundException(Long id) {
super();
this.id = id;
}

// Getters

为什么在将消息转换为字符串时失败:已检查异常与未检查异常请记住 Exception是一个已检查的异常,需要您对其进行显式处理——否则,这将在编译时失败。

您可能需要查看 RuntimeException设置未经检查的异常。

有关 RuntimeException 的更多详细信息,请参阅以下内容对比Exception :

Difference between java.lang.RuntimeException and java.lang.Exception

请参阅以下类似问题和可以为您指明正确方向的答案:

How can I write custom Exceptions?

关于java - 处理自定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52562791/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com