пытается выбросить ошибку из метода execute
в process
, который является родительской функцией, если в методе execute
есть ошибка, возвращается пустой объект. Как вернуть ошибку из дочерней функции в функцию-вызывающую функцию, чтобы она могла отправить логическую ошибку клиенту, используя try/catch
?
main.ts
export class GetSpecialtyQuestionsController extends Controller {
public static async process(@Request() request: ExpressRequest,
response: ExpressResponse): Promise < any > {
try {
const instance = new GetSpecialtyQuestionsController();
const data = await instance.execute(request);
response.status(200);
response.send(data);
} catch (err) {
response.status(200);
response.send(err.message);
}
}
constructor() {
super();
}
private async execute(@Request() request: ExpressRequest): Promise < any > {
// const specialtyMembers = this.getSpecialtyMemberInfoFakeObject();
const specialtyMembers = await new SpecialtyCacheUtility().getSpecialtyMemberInfoCache(
request.body.getSpecialtyQuestionsRequest.header.serviceContext.tokenID);
if (!specialtyMembers) {
return this.errorHandler(request);
}
const body: any = this.buildSingleRequestBody(proxyMember, request.body.getSpecialtyQuestionsRequest);
const requestObject = this.specialtyQuestionRequest(body);
const requestArray: IRequestURL[] = [requestObject];
const data = await makeRequest(requestArray);
return this.mapSpecialtyResponse(data, specialtyMembers);
}
}