Witam.
Mam pewna watpliwosc odnosnie obslugi bledow. Do tej pory malo bawilem sie w obsluge bledow, takze prosze o zrozumienie.
Mam program pobierajacy i modyfikujacy liste zakupow z serwera.
Potrzebny fragment kodu jest nastepujacy:
w pliku repozytorium.model.ts:
this.zrodloDanych.usunZakup(zakup.id).subscribe(() => {
console.log("W subscribe");
...
});
w pliku: rest.zrodlodanych.ts
usunZakup(id: number) {
console.log("W rest");
return this.wyslijZadanie(RequestMethod.Delete, `${this.url}/${id}`);
}
w pliku: rest.zrodlodanych.ts:
wyslijZadanie(verb: RequestMethod, url: string, body?: Zakup): Observable<Zakup> {
console.log("W wyslij zadanie");
return this.http.request(new Request({
method: verb,
url: url,
body: body
})).map(odpowiedz => odpowiedz.json())
.catch((error: Response) => Observable.throw(`Błąd sieci: ${error.statusText} (${error.status})`));
}
Gdy nacisne przycisk generujacy blad(podaje id rowne -1), wywoluje this.zrodloDanych.usunZakup(zakup.id) i dalej juz widac.
W konsoli pojawiaja sie takie komunikaty:
W rest
W wyslij zadanie
zone.js:3243 DELETE http://localhost:2500/zakupy/-1 404 (Not Found)
core.js:1449 ERROR Błąd sieci: Not Found (404)
I ten ostatni blad jest obsluzony przeze mnie, jak widac w kodzie. A pierwszy, DELETE w tresci to jest odpowiedz serwera, czy blad serwera? W skrocie, czy jesli tutaj skupiam sie na obslugiwaniu bledow, to mam sie nim przejmowac jako bledem, czy juz wszystko co powinno byc obsluzone, jest obsluzone? Jesli mam go obsluzyc, to jak i gdzie, bo jakos tego nie widze. Dziekuje.