【发布时间】:2021-06-17 17:46:53
【问题描述】:
我已将我的代码缩小到一个 mcve。我期望这样做是被 process.on('uncaughtException') 捕获,而是被 process.on('unhandledRejection') 捕获。有人可以详细告诉我为什么会这样吗?
testDev.js
'use strict';
const DbConfigHandler = require ('./DbConfigHandler.js');
async function MainAwait( )
{
var szConfigFilename;
process.on('uncaughtException', (err) => {
console.log(err.stack + "************");
process.abort();
});
process.on('unhandledRejection', (err) => {
console.log(err.stack + "***");
process.abort();
});
szConfigFilename = "../configWrong.txt";
let ConfigHandlerObj = new DbConfigHandler();
try {
ConfigHandlerObj.load(szConfigFilename);
} catch (err) {
if (err instanceof Error) {
ConfigHandlerObj.load(szConfigFilename);
} else {
process.exit(1);
}
}
}
// Main starts here
MainAwait();
ConfigHandler.js
'use strict';
const fs = require('fs')
class ConfigHandler {
constructor() {
}
createCredentialArray(szFileName) {
try {
fs.readFileSync(szFileName);
} catch (err) {
throw err;
}
}
load(szFileName) {
try {
this.createCredentialArray(szFileName);
} catch (err) {
throw err;
}
}
};
module.exports = ConfigHandler;
DbConfigHandler.js
const ConfigHandler = require('./ConfigHandler.js');
class DbConfigHandler extends ConfigHandler {
constructor() {
super();
}
};
module.exports = DbConfigHandler;
【问题讨论】:
标签: javascript node.js exception file-io