Java 即使在所需条件下也无法看到任何异常消息
我是Java领域的新手 当我调用的参数(如标题)丢失时,我想抛出错误并从正文中获取错误消息。但我不能 我附加了整个代码,在MovieListController.java文件中,我使用if/else条件语句来抛出异常 实际上,我对java还不太了解。所以,请让我知道我应该修改或补充什么部分 谢谢 我使用的是Eclipse2019-03,以及SpringBootV2.1.4和Maven版本 MovieList.javaJava 即使在所需条件下也无法看到任何异常消息,java,spring-boot,exception,error-handling,Java,Spring Boot,Exception,Error Handling,我是Java领域的新手 当我调用的参数(如标题)丢失时,我想抛出错误并从正文中获取错误消息。但我不能 我附加了整个代码,在MovieListController.java文件中,我使用if/else条件语句来抛出异常 实际上,我对java还不太了解。所以,请让我知道我应该修改或补充什么部分 谢谢 我使用的是Eclipse2019-03,以及SpringBootV2.1.4和Maven版本 MovieList.java package movie; public class MovieList
package movie;
public class MovieList {
private final long year;
private final String title;
public String getTitle() {
return title;
}
public long getYear() {
return year;
}
public MovieList( long year, String title) {
this.title = title;
this.year = year;
}
}
MovieListController.java
package movie;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MovieListController {
private static final String template = "The movie - %s ( %d )";
@RequestMapping(value="/movielist", method=RequestMethod.GET)
public MovieList movie(
@RequestParam(value="title") String title,
@RequestParam(value="year") long year,
@RequestHeader(value="test") String header
) {
if(title == null) {
throw new MyException("test execution");
} else {
return new MovieList( year, String.format(template, title, year));
}
}
}
Application.java,包括主函数
package movie;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
MyException.java
package movie;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;
@ResponseStatus(HttpStatus.BAD_REQUEST)
public class MyException extends RuntimeException {
private static final long serialVersionUID = 1L;
public MyException(String msg) {
super(msg);
}
}
当您点击
GET/movielist
时,实际会发生什么?应该抛出异常。该方法是否实际被调用,您是否尝试过调试?@TimBiegeleisen构建成功,我使用Postman进行了测试。我可以看到包含消息的JSON数据,但没有我在MovieListController.javaI中编写的“测试执行”,我甚至不知道您在看什么(可能是标准错误日志),但这将是设置自定义记录器的好时机,例如log4j
。您应该从自定义异常中进行日志记录。@TimBiegeleisen我首先单击了Maven build,然后执行Spring Boot应用程序。而且。。。我认为你是对的。我将首先尝试设置自定义记录器。谢谢。当你点击GET/movielist
时会发生什么?应该抛出异常。该方法是否实际被调用,您是否尝试过调试?@TimBiegeleisen构建成功,我使用Postman进行了测试。我可以看到包含消息的JSON数据,但没有我在MovieListController.javaI中编写的“测试执行”,我甚至不知道您在看什么(可能是标准错误日志),但这将是设置自定义记录器的好时机,例如log4j
。您应该从自定义异常中进行日志记录。@TimBiegeleisen我首先单击了Maven build,然后执行Spring Boot应用程序。而且。。。我认为你是对的。我将首先尝试设置自定义记录器。谢谢