Обработка ошибок / исключений в Angular5 .. ResponseEntity возвращает ноль при исключении - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь обработать исключения в моем угловом файле, который помещает данные в бэкэнд с помощью REST API. Проблема в том, что объект ответа в REST отправляет ответ как нулевой всякий раз, когда возникает исключение, хотя я устанавливаю правильный код состояния для исключения. Я думаю, что мой блок catch не вызывается. Ниже приведен код от компонента к услуге.

Schedule.component.ts

create(schedule: Schedule): void {

  this.service.create(schedule).subscribe(data => {
   if (data.created == true) {
       this.gotoSchedules(schedule);
    }
   },
   errorCode => {
      this.statusCode = errorCode;
      console.error(errorCode);
    }
 );//subscribe ends
}

schedule.service.ts

create(schedule: Schedule) : Observable<any> {
  let params:URLSearchParams = this.scheduleParams(schedule);
  let theUrl = window.location.origin + "/o/dsl-rest/dsl/schedule";

  let options = new RequestOptions({responseType: ResponseContentType.Json});
  return this.http.post(theUrl, params, options).map(res => res.json()).catch(this.handleError);
}

ScheduleController.java

@RequestMapping(value = "/schedule", method = RequestMethod.POST)

public ResponseEntity<String> createSchedule(@Context HttpServletRequest request, @Context HttpServletResponse response, 
        @FormParam("name") String name,
        @FormParam("days") Integer[] days,
        @FormParam("times") String[] times,
        @FormParam("inside") String[] inside,
        @FormParam("outside") String[] outside,
        @FormParam("screenName") String screenName,
        @FormParam("timeZone") String timeZone, 
        @FormParam("description") String description,
        @FormParam("notifyEmails") String[] notifyEmails,
        @FormParam("notifyInitial") Boolean notifyInitial,
        @FormParam("notifyLate") Boolean notifyLate) throws NamingException
{
    ResponseEntity<String> responseEntity = null;
    long t1 = System.currentTimeMillis();

    Map<String,Object> schedule = createScheduleMap(name, days, times, inside, outside,
            screenName, timeZone, description, notifyEmails, notifyInitial, notifyLate);

    try {
        scheduleService.createSchedule(schedule);
        responseEntity = new ResponseEntity<String>("{\"created\" : true}", HttpStatus.OK);
    } catch(Exception e){
        responseEntity = new ResponseEntity<String>("{\"status\" : error}", HttpStatus.INTERNAL_SERVER_ERROR);
    }
    finally {
        long t2 = System.currentTimeMillis();
        logger.debug("<< createSchedule() in " + (t2 - t1) + "ms");
    }
    return responseEntity;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...