E0122: missing catch or finally clause for try statement
A try
statement has a list of statements followed by an optional catch
block
followed by an optional finally
block. It is a syntax error to omit both the
catch
block and the finally
block:
async function readConfig(configFilePath) {
try {
let data = await fs.promises.readFile(
configFilePath,
"utf-8",
);
return parseConfig(data);
}
}
let recursionDepth = 0;
function recursionExample() {
if (recursionDepth > 100) {
throw new Error("too much recursion!");
}
recursionDepth += 1;
try {
recursionExample();
}
}
To fix this error, remove the try
keyword:
async function readConfig(configFilePath) {
let data = await fs.promises.readFile(
configFilePath,
"utf-8",
);
return parseConfig(data);
}
Alternatively, add a catch
block after the try
block:
async function readConfig(configFilePath) {
try {
let data = await fs.promises.readFile(
configFilePath,
"utf-8",
);
return parseConfig(data);
} catch (error) {
if (error.code === 'ENOENT') {
return {};
} else {
throw error;
}
}
}
Alternatively, add a finally
block after the try
block:
let recursionDepth = 0;
function recursionExample() {
if (recursionDepth > 100) {
throw new Error("too much recursion!");
}
recursionDepth += 1;
try {
recursionExample();
} finally {
recursionDepth -= 1;
}
}
Introduced in quick-lint-js version 0.2.0.