在方法上使用 try/catch
Use try/catch on method
我对许多对象方法使用了多个相同的 try/catch 测试。所以,我想为重构我的代码创建 try/catch
方法,但没有返回错误。
例如:
@autobind
async forgottenPassword(req, res) {
return this.callService(
res,
async () => await companyService.forgottenPassword(req.body.formData)
);
}
callService(res, func) {
try {
func();
} catch (error) {
res.statusMessage = error.message;
res.status(error.statusCode);
} finally {
res.end();
}
}
我的 catch
从未被调用过 :/
有谁知道我弄错了吗?
谢谢!
您需要调用服务 async
并在那里使用 await
。
@autobind
async forgottenPassword(req, res) {
return this.callService(
res,
async () => await companyService.forgottenPassword(req.body.formData)
);
}
async callService(res, func) {
try {
await func();
} catch (error) {
res.statusMessage = error.message;
res.status(error.statusCode);
} finally {
res.end();
}
}
我对许多对象方法使用了多个相同的 try/catch 测试。所以,我想为重构我的代码创建 try/catch
方法,但没有返回错误。
例如:
@autobind
async forgottenPassword(req, res) {
return this.callService(
res,
async () => await companyService.forgottenPassword(req.body.formData)
);
}
callService(res, func) {
try {
func();
} catch (error) {
res.statusMessage = error.message;
res.status(error.statusCode);
} finally {
res.end();
}
}
我的 catch
从未被调用过 :/
有谁知道我弄错了吗?
谢谢!
您需要调用服务 async
并在那里使用 await
。
@autobind
async forgottenPassword(req, res) {
return this.callService(
res,
async () => await companyService.forgottenPassword(req.body.formData)
);
}
async callService(res, func) {
try {
await func();
} catch (error) {
res.statusMessage = error.message;
res.status(error.statusCode);
} finally {
res.end();
}
}