Я новичок в Java-поле.
Я хочу выдать ошибку и получить сообщение об ошибке из тела при вызове параметра (в моем, например, заголовке) отсутствует.Но я не могу.
Я присоединяю весь свой код, и в файле MovieListController.java я использую условное выражение if / else для того, чтобы вызвать исключение.
На самом деле у меня малоИдея Java еще нет.Поэтому, пожалуйста, дайте мне знать, какую часть я должен пересмотреть или сделать дополнительно.
Спасибо.
Я использую Eclipse 2019-03 с Spring-boot v2.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);
}
}