Обработка исключений в Spring Boot Rest API ResponseStatusException - PullRequest
0 голосов
/ 16 февраля 2020

Во время работы программы с предложением удалить предложение catch.

@RestController @RequestMapping(value = "/api/")
public class EmployeeController {

private EmployeeService employeeService;

@Autowired
public EmployeeController(EmployeeService employeeService) {
    this.employeeService = employeeService;
}

@GetMapping(value = "employee")
public List<Employee> getAllEmployee() {
    try {
        return employeeService.findAllEmployees();
    } catch (MyResourceNotFoundException ex) {
        throw new ResponseStatusException(
          HttpStatus.NOT_FOUND, "Employee not Found", ex);
    }
}

}

Это исключение класса

@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "Employee Not Found")
public class MyResourceNotFoundException extends Exception {
private static final long serialVersionUID = 1L;

public MyResourceNotFoundException(String errorMessage) {
    super(errorMessage);
}
}

Пожалуйста, найдите скриншот ниже. Это исключение, которое выдается при запуске приложения.

enter image description here

1 Ответ

0 голосов
/ 16 февраля 2020

Я думаю, что в методе getAllEmployee есть логическая ошибка. Потому что, если в employeeService.findAllEmployees() не будет сотрудника, то по логике c кода он должен вернуть список Employee с размером 0. Итак, я думаю, ваш код должен выглядеть следующим образом:

@GetMapping(value = "employee")
public List<Employee> getAllEmployee() throws MyResourceNotFoundException {
    List<Employee> employees = employeeService.findAllEmployees();

    if (employees.size() > 0) return employees;
    else throw new MyResourceNotFoundException("Employee not Found");
}
...