Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 即使在所需条件下也无法看到任何异常消息_Java_Spring Boot_Exception_Error Handling - Fatal编程技术网

Java 即使在所需条件下也无法看到任何异常消息

Java 即使在所需条件下也无法看到任何异常消息,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

我是Java领域的新手

当我调用的参数(如标题)丢失时,我想抛出错误并从正文中获取错误消息。但我不能

我附加了整个代码,在MovieListController.java文件中,我使用if/else条件语句来抛出异常

实际上,我对java还不太了解。所以,请让我知道我应该修改或补充什么部分

谢谢

我使用的是Eclipse2019-03,以及SpringBootV2.1.4和Maven版本

MovieList.java

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应用程序。而且。。。我认为你是对的。我将首先尝试设置自定义记录器。谢谢