PracticU

טיפול בחריגות - NodeJS Exceptions

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › טיפול בחריגות - NodeJS Exceptions
מילון מושגים:
Node.js - סביבת ריצה שמאפשרת להריץ קוד JavaScript מחוץ לדפדפן, בעיקר בצד השרת.
דיסק - התקן לאחסון קבוע של נתונים, כמו כונן קשיח (HDD) או כונן מבוסס זיכרון מהיר (SSD).
מסד נתונים - אוסף מאורגן של נתונים המאוחסן כך שאפשר לשמור, לחפש, לעדכן ולשלוף אותו ביעילות, לרוב באמצעות שפת שאילתות.
ראוט - הגדרה שמקשרת כתובת בקשה לקוד שמטפל בה באפליקציה. גם מסלול שדרכו עוברות חבילות ברשת.
תגובה - המידע שהשרת מחזיר ללקוח בתשובה לבקשה, הכולל בדרך כלל נתונים וקוד סטטוס.
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.

טיפול בחריגות - NodeJS Exceptions
קריסה בשרת לא צריכה להפיל את כל האתר. כשהשרת נשען על דיסק, מסד נתונים או מערכת חיצונית, שגיאה כזו יכולה להגיע בכל רגע, ולפעמים גם מהקוד שלנו עצמו.
עטיפת הראוטים
1. try/catch בכל ראוט: כל ראוט עטוף בבלוק try, והשגיאה נתפסת ב-catch.
2. סטטוס 500 ללקוח: ב-catch שולחים response.status(500).send(...), כך שהלקוח מקבל שגיאת שרת מסודרת ולא קריסה.
3. הודעה לדיבאג בלבד: בשלב הפיתוח מחזירים את הודעת השגיאה כדי לראות מה קרה. באתר אמיתי כדאי להחזיר הודעה כללית, כי הודעת השגיאה עלולה לחשוף שמות טבלאות ועמודות.
בדיקת הקריסות
1. זריקה ידנית: ב-GetOneProduct מוסיפים throw כש-ID הוא 12, ובפוסטמן מתקבל 500 עם הודעת השגיאה.
2. שגיאה אמיתית: קריאה ל-toFixed עם ערך מינוס 10 מפילה את הקוד, כי הדיוק חייב להיות מספר בין 1 ל-100.
3. קובץ חסר: אם קובץ המוצרים נמחק או שונה שמו, הקריאה נכשלת ומוחזרת שגיאה 500.
העטיפה מונעת מהשרת לעצור, והלקוח מקבל תשובה מובנת.
השיעור הבא בקורס: טיפול במקרה של Resource Not Found

פרקי ההרצאה: טיפול בחריגות - NodeJS Exceptions

  1. 00:00

    שגיאת 500 וקריסות בשרת

  2. 00:40

    עטיפת הראוטים ב-try catch

  3. 01:22

    הודעת שגיאה כללית ללא פרטים

  4. 02:32

    בדיקת קריסה בראוט Get One

תמלול ההרצאה: טיפול בחריגות - NodeJS Exceptions

הטקסט המלא של הדקות הראשונות בהרצאה «טיפול בחריגות - NodeJS Exceptions» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:03

    סוג השגיאה הבא שאנחנו צריכים לטפל בו זה שגיאת 500, זאת אומרת קריסה בשרת. רגע, למה צריכה להיות לנו קריסה?

  2. 00:12

    אז כל פעם שאנחנו מתעסקים עם דיסק, עם דאטאבייס, עם משהו שבעצם הוא מערכת חיצונית לאתר שלנו, יכולה להיות לנו קריסה, ובכלל גם אולי יכולה להיות קריסה בקוד שלנו במקרים מסוימים.

  3. 00:26

    כאשר יש קריסה אנחנו לא רוצים שכל השרת יפסיק מיד לעבוד, אנחנו רוצים להחזיר ללקוח שקרתה איזושהי בעיית קריסה שהיא בעצם אשמתנו כי אם הדאטאבייס קורס זה לא הבעיה של היוזר זה הבעיה של הפיירובר אבל אנחנו חייבים לומר את זה ליוזר ומה שמקובל

  4. 00:44

    ושקריסות אנחנו צריכים לתפוס אותם כמובן עם מנגנון טרייקאץ' ולהחזיר ללקוח הודעת 500 או סטטוס קוד 500. זה אומר שכל אחד מהראוטים שלנו אנחנו עכשיו צריכים לעטוף אותו ב-tri-catch, בואו נשים פה אצ׳ אירור ובתוך האירור response.status הולך

  5. 01:11

    להיות 500.send ובואו נחזיר כרגע את הודעת מסאג' שרק בשביל עכשיו לראות מה בעצם מוחזר, מה בעצם השגיאה שהייתה, כאשר יכול להיות שהרבה פעמים אתם לא רוצים להחזיר ליוזר הסופי את המסאג', אלא אתם רוצים להחזיר איזושהי הודעה אולי יותר כללית כמו הראה שגיאה, אנא נעשה שנית מאוחר יותר.

  6. 01:38

    כי ה-error message יכול להחזיק כל מיני דברים ששייכים לקריסה עצמה, לדוגמה מידע מהדאטאבייס שאתם לא רוצים לחשוף ליוזר, שמות של טבלאות, שמות של עמודות.

  7. 01:49

    אז זה אולי כדאי לעשות רק במצב של דיבאגינג, וכאשר אנחנו בעצם רוצים להעלות גרסה לאוויר למשתמשים אמיתיים, אולי כדאי לשלוח להם הודעה אחרת ולא error message, כמובן 500 בכל מקרה אני שולח את זה אני רוצה עכשיו לשכפל לכל פונקציה אז בואו נתחיל לשכפל קודם כל את הטראיים יש לנו כאן וכאן ויש לנו כאן ובדיליט ואז

  8. 02:15

    ניגש לקאצ'ים ופשוט נדביק את הקאצ' פה תכף נסדר את הכל מבחינת האינדנטיישן וכאן וכאן כי בעצם הכל אותו דבר הנה סידרנו את זה ומה שאנחנו רוצים לעשות זה לבדוק. כמובן, כל דבר שאנחנו בונים אנחנו רוצים גם לבדוק.

  9. 02:38

    אז איך נבדוק את זה? בואו נעשה כזה דבר. יש לנו כאן, בואו ניקח get one product. הנה ה-ID. נעשה איזה בדיקה מעניינת. נגיד כזה דבר.

  10. 02:52

    במידה וה-ID הוא 12, אנחנו נעשה הדמיה של קריסה.

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: מחיקת מוצר - קורס NodeJS

ההרצאה הבאה: טיפול במקרה של Resource Not Found

הרצאות קשורות מקורסים אחרים

  • טיפול בחריגות - Exception Handling
  • טיפול בשגיאות בצד שרת - Exceptions
  • טיפול בערכי NULL
  • שלבי טיפול בפריצה

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React