טיפול בשגיאות
חלק מהיחידה יסודות Node.js במסלול ה-Node.js של Coddy. שיעור 13 מתוך 24.
קובץ notes.json שנערך ידנית עלול להיפגם, ואז JSON.parse זורקת שגיאה ו-Node מדפיס מעקב מחסנית.
try מריץ קוד שעלול לזרוק שגיאה. כשזה קורה, catch מקבל את השגיאה, והתוכנית שלך מחליטה מה לומר. err.message מכיל את הסיבה בשורה אחת.
let config;
try {
config = JSON.parse('{ port: 3000 }');
} catch (err) {
console.error(`config is broken: ${err.message}`);
process.exit(1);
}אל תתפסו את השגיאה ותמשיכו עם רשימה ריקה: פעולת add הבאה תשמור מעל הקובץ הפגום, וכל ההערות שבו יאבדו.
אתגר
קל- כאשר
notes.jsonאינו JSON תקין, כל פקודה מדפיסה ל־stderr אתnotes.json is damaged: <message>ומסתיימת בקוד1. - קובץ
notes.jsonשסופק עם קובצי הפתיחה פגום בכוונה.
הריצו node notes.js list לפני השינוי ואחריו. לאחר מכן מחקו את הפסיק המיותר מתוך notes.json והריצו שוב את list.
נסו בעצמכם
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
const file = 'notes.json';
const store = {
notes: existsSync(file) ? JSON.parse(readFileSync(file, 'utf8')) : [],
save() {
writeFileSync(file, JSON.stringify(this.notes, null, 2));
},
add(text) {
this.notes.push(text);
this.save();
return this.notes.length;
},
remove(n) {
const [text] = this.notes.splice(n - 1, 1);
this.save();
return text;
},
};
export default store;