【发布时间】:2020-11-06 17:55:28
【问题描述】:
我有这段代码,希望在这个异步方法中捕获所有异常。不知何故,发生了一个 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;
}
【问题讨论】:
标签: reactjs asynchronous exception promise try-catch