У меня есть служба проверки в Angular с основным методом, который вызывает другие внутренние валидаторы. Если некоторые из них терпят неудачу, выдается Error
, и основной метод перехватывает его. Например:
mainValidator(valueToValidate: any) {
try {
validator1(valueToValidate);
validator2(valueToValidate);
...
validatorN(valueToValidate);
} catch (error) {
validValuesSubject.error(error);
}
validValuesSubject.next(valueToValidate);
}
validatorX(valueToValidate: any) {
if (isNotValid) {
throw new Error('not valid because...');
}
}
Проблема в том, что при вызове mainValidator
в некоторых тестах, передающих недопустимое значение, библиотека zone.js
фиксирует ошибку, несмотря на то, что я уже записываю ее с catch
. Это приводит к ошибкам случайных тестов:
Uncaught Error: Not valid because... thrown
Как можно избежать зоны. js, чтобы быть в курсе этих внутренних ошибок?