Skip to content

Commit eddc819

Browse files
committed
Handle specific SQLite errors and rethrow unexpected ones
想定したエラー(SQLITE_CONSTRAINT, SQLITE_ERROR)のみを適切に処理し、意図しない例外の握りつぶしを防ぐため。
1 parent 92ebeb1 commit eddc819

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

03.asynchronous/sqlite_asyncawait_error.js

+8-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ try {
2727
const result = await runQueryAsync(db, insertRowQuery, [title]);
2828
console.log(`Record was inserted successfully with ID: ${result.lastID}`);
2929
} catch (err) {
30-
if (err.code === "SQLITE_CONSTRAINT") {
30+
if (err instanceof Error && err.code === "SQLITE_CONSTRAINT") {
3131
console.error(`Error occurred while inserting record: ${err.message}`);
32+
} else {
33+
throw new Error("Unexpected error occured while inserting record");
3234
}
3335
}
3436
}
@@ -40,13 +42,17 @@ try {
4042
console.log(`id:${row.id}, title:${row.title}`);
4143
}
4244
} catch (err) {
43-
if (err.code === "SQLITE_ERROR") {
45+
if (err instanceof Error && err.code === "SQLITE_ERROR") {
4446
console.error(`Error occurred while fetching records: ${err.message}`);
47+
} else {
48+
throw new Error("Unexpected error occured while fetching records");
4549
}
4650
}
4751

4852
await runQueryAsync(db, dropTableQuery);
4953
console.log("Table was deleted successfully");
54+
} catch (err) {
55+
console.error(err);
5056
} finally {
5157
await closeDatabaseAsync(db);
5258
}

0 commit comments

Comments
 (0)