这是NodeJS代码,但它是关于最佳实践的一般编程问题。
以下代码检查HTTPS证书的文件系统。 如果存在,则创建HTTPS服务器。 如果文件不存在,则返回undefined。 如果发生了意外的异常(它从未发生过,而且我不确定它是否可能),它会抛出它。
请假设抛出块是最好的做法,为了这个问题(我认为这是一个但我不希望答案被这个问题分散注意力。)
现在,抛出异常的代码没有像我的代码覆盖工具所揭示的那样被命中。我该怎么办呢?
我的选择是......
1 - 删除代码,因为它从未被命中 - 但是如果抛出了意外的异常,catch块会掩盖它!
2 - 保留代码并告诉覆盖工具忽略它
3 - 做别的事情
请告知最佳做法。非常感谢
createHttpsServer(certDir) {
if (!certDir) {
return undefined;
}
try {
let options = {
key: fs.readFileSync(`${certDir}/privkey.pem`),
cert: fs.readFileSync(`${certDir}/fullchain.pem`),
ca: fs.readFileSync(`${certDir}/chain.pem`)
};
return https.createServer(options, this.app);
} catch (err) {
if (err.code === 'ENOENT') {
return undefined;
} else {
throw err;
}
}
}
答案 0 :(得分:1)
必须同意罗伯特对此的评论。我建议保留代码。 "我不确定它能不能"是一个陷阱,我自己已经堕落了许多次。