Я использую throwExecption
, когда файл не указан в запросе, и в конце своей функции я использую блок finally
, чтобы отсоединить файл.
Так что я file
неуказал, что я должен получить код 400 с сообщением об ошибке.
Но из-за finally
блок throw Execption
переопределяется им
try {
if (!file) {
throw new BadRequestException('no file');
}
}
...
finally {
// On error or not : delete temporary file
await fse.unlink(file.path); // error 500 because Cannot read property 'path' of undefined
}
Я нашел обходной путь, если проверить файл вfinally
блок, но это делает код избыточным.
try {
if (!file) {
throw new BadRequestException('no file');
}
}
...
finally {
// On error or not : delete temporary file
if (file) {
await fse.unlink(file.path);
} else {
throw new BadRequestException('no file'); <== redundancy
}
}
Есть ли другой способ обработки этого случая ошибки?