jak rzucic wyjatek 404?

Odpowiedz Nowy wątek
2018-08-24 09:42

Rejestracja: 2 lata temu

Ostatnio: 1 rok temu

0

Chce rzucic kod błędu 404 zamiast 400, jak to zrobić, mam taki kod, ale zanim rzuce wyjatek jest odpowiedz z bazy 400.

public PersonDto putPerson(PersonDto personDto) {

        //TODO return 404
        if (personRepository.findOne(personDto.getId())== null ){
            throw new ResourceBadRequestException();
        }

Pozostało 580 znaków

2018-08-24 10:34

Rejestracja: 9 lat temu

Ostatnio: 4 tygodnie temu

Lokalizacja: Warszawa

4

W spring boot'cie wystarczy zrobić swój wyjątek i dodać odpowiedni status w adnotacji

@ResponseStatus(value = HttpStatus.NOT_FOUND)
public class NotFoundException extends RuntimeException {
    public NotFoundException(String s) {
        super(s);
    }
}

Pozostało 580 znaków

2018-08-24 10:35

Rejestracja: 4 lata temu

Ostatnio: 13 godzin temu

0

Spróbuj:

return new ResponseEntity<>(HttpStatus.NOT_FOUND);

EDIT: Ok, nie spojrzałem dokładnie, że to nie kontroler, ale na przyszłość niech zostanie :P

edytowany 2x, ostatnio: lukaszek016, 2018-08-24 11:06

Pozostało 580 znaków

2018-08-24 10:46

Rejestracja: 5 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Warszawa

0

Podstawowe pytanie OPie- czemu nie korzystasz z Optionala?


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
A czemu odpowiadasz nie na temat? Chłopak szuka rozwiązania swojego problemu a Ty piszesz mu że lepiej to inaczej napisać co i tak nie rozwiązuje jego problemu. - diligentia 2018-08-27 10:06

Pozostało 580 znaków

2018-08-24 11:13

Rejestracja: 2 lata temu

Ostatnio: 1 rok temu

1
scibi92 napisał(a):

Podstawowe pytanie OPie- czemu nie korzystasz z Optionala?

a optional rzuci 404?

Pozostało 580 znaków

2018-08-24 11:32

Rejestracja: 4 lata temu

Ostatnio: 2 tygodnie temu

0
masjav napisał(a):
scibi92 napisał(a):

Podstawowe pytanie OPie- czemu nie korzystasz z Optionala?

a optional rzuci 404?

Optional to wrapper na obiekt, który pozwala Ci w eleganacki sposób pracować z ewentualnymi nullami, nie ma to związku z rzucaniem wyjątku, kolega pyta pewnie dlatego, że w fragmencie kodu, który wrzuciłeś, masz sprawdzenie

if (personRepository.findOne(personDto.getId())== null )

edytowany 2x, ostatnio: tomek1221, 2018-08-24 11:33

Pozostało 580 znaków

2018-08-24 12:06

Rejestracja: 2 lata temu

Ostatnio: 2 lata temu

0
throw new WebApplicationException(Response.Status.NOT_FOUND);

Pozostało 580 znaków

2018-08-24 12:10

Rejestracja: 5 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Warszawa

0

@masjav:

personRepository.findById(personDto.getId()).orElseThrow(NotFoundException::new)

Musisz dodać mapowanie NotFoundExceptiona...


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
edytowany 1x, ostatnio: scibi92, 2018-08-24 12:23
Optional nie ma metody getOrElseThrow. Jest metoda orElseThrow. - monterinio 2018-08-24 12:12

Pozostało 580 znaków

2018-08-24 13:56

Rejestracja: 9 lat temu

Ostatnio: 4 tygodnie temu

Lokalizacja: Warszawa

0
if (personRepository.findOne(personDto.getId())== null )

skoro metoda findOne zwraca null to zrobienie null checka jest i najlepszym najprostszym rozwiązanie.
Opakowywanie tego w optionala "na siłę" nie jest konieczne.


edytowany 1x, ostatnio: mateuszd, 2018-08-24 13:59

Pozostało 580 znaków

2018-08-24 13:59

Rejestracja: 5 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Warszawa

0

Ale findById zwraca Optional


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"

Pozostało 580 znaków

2018-08-24 14:03

Rejestracja: 9 lat temu

Ostatnio: 4 tygodnie temu

Lokalizacja: Warszawa

0
scibi92 napisał(a):

Ale findById zwraca Optional

Być może, nie widać tego na załączonym fragmencie kodu


Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0