У меня есть этот код, я надеюсь перехватить все исключения во время этого асинхронного метода. Каким-то образом произошло исключение URL-адреса, но оно не было перехвачено предложением catch. Я должен добавить вокруг него блок try-catch, чтобы поймать это исключение, не знаю почему, может кто-нибудь объяснить?
public async transform(
): Promise {
const {result} = this.processUrl(url).catch(error => error);
return result;
}
private processUrl(url: string): Promise {
const targetHostname = new URL(url).hostname; // exception thrown here invalid url something
// do something else ...
return Promise.resolve(targetHostname);
}
Я надеялся, что функция преобразования никогда не вызовет исключения, но когда я указываю недопустимый URL-адрес, метод processUrl выдает исключение, которое каким-то образом не попадает в функцию преобразования. Я должен сделать это, чтобы поймать это.
public async transform(
): Promise {
try {
const {result} = this.processUrl(url).catch(error => error);
} catch(e) {
// invalid url exception got caught
return Promise.resolve(undefined);
}
return result;
}