יצירת חריגה מותאמת אישית
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 56 מתוך 68.
בעוד שמחלקת Exception המובנית של PHP מתאימה לטיפול כללי בשגיאות, יצירת מחלקות חריגות מותאמות אישית משלך מאפשרת לספק הודעות שגיאה ספציפיות ומשמעותיות הרבה יותר. חריגות מותאמות אישית עוזרות לך להבחין בין סוגים שונים של בעיות בקוד שלך ולטפל בהן בהתאם.
כדי ליצור חריגה מותאמת אישית, מרחיבים את מחלקת הבסיס Exception של PHP באמצעות מילת המפתח extends. הירושה מעניקה לחריגה המותאמת אישית את כל הפונקציונליות של החריגה הסטנדרטית, ובו בזמן מאפשרת לך להוסיף התנהגות ייחודית משלך או פשוט לתת לה שם תיאורי יותר.
<?php
class InvalidEmailException extends Exception {
// המחלקה יכולה להיות ריקה - היא יורשת הכול מ-Exception
}
// אפשר גם להוסיף מאפיינים או מתודות מותאמים אישית
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>העוצמה של חריגות מותאמות אישית טמונה בשמות התיאוריים שלהן וביכולת לתפוס סוגים ספציפיים של חריגות. במקום לתפוס Exception כללי, אפשר לתפוס InvalidEmailException, DatabaseConnectionException או כל חריגה מותאמת אישית אחרת שיוצרים. כך הטיפול בשגיאות מדויק יותר והקוד קל יותר לתחזוקה.
אתגר
קלתקבל קלט אחד: מחרוזת המייצגת שם של מחלקת חריגה. הקלט יהיה מילה אחת שיש להשתמש בה כשם של מחלקת החריגה המותאמת אישית שלך (לדוגמה: NegativeBalanceException או InvalidUsernameException).
קרא את הקלט וצור מחלקת חריגה מותאמת אישית באמצעות השם שסופק. מחלקת החריגה המותאמת אישית שלך צריכה לרשת ממחלקת הבסיס Exception של PHP. לאחר יצירת המחלקה, הדפס "Custom exception created: " ולאחריו את שם המחלקה שקיבלת כקלט.
פורמט הקלט: שורה אחת המכילה מחרוזת המייצגת את שם מחלקת החריגה (לדוגמה: InvalidAgeException)
הפלט הצפוי: Custom exception created: ולאחריו שם מחלקת החריגה
נסו בעצמכם
<?php
// קראו את שם מחלקת החריגה
$className = trim(fgets(STDIN));
// TODO: כתבו את הקוד שלכם למטה כדי ליצור את מחלקת החריגה המותאמת אישית
// הציגו את התוצאה
echo "Custom exception created: " . $className;
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1פונקציות מתקדמות
פונקציות אנונימיותסגירות ו-'use'פונקציות חץפונקציות callbackשימוש ב-'call_user_func'פונקציות משתנותהעברה באמצעות הפניהפונקציות רקורסיביותסיכום: מגוון פונקציות4מערכים רב־ממדיים
יצירת מערך דו־ממדיגישה לאיברי מערך דו־ממדישינוי איברי מערך דו־ממדימעבר באמצעות לולאות מקוננותמערכים אסוציאטיביים דו־ממדייםסיכום: תרגיל רשת פשוטה2מניפולציות מתקדמות במערכים
הוספה באמצעות 'array_push'הסרה באמצעות 'array_pop'הוספה לתחילת המערך באמצעות 'array_unshift'הסרה מתחילת המערך באמצעות 'array_shift'מיזוג מערכים ממוספריםמיזוג מערכים אסוציאטיבייםחילוץ באמצעות 'array_slice'בדיקת ערכים באמצעות 'in_array'חיפוש מפתחות באמצעות 'array_search'סיכום: תרגיל רשימת השמעה5פנקס ציונים לתלמידים
הגדרת הפרויקט: מבנה הנתוניםהוספת תלמיד חדשהוספת ציון לתלמידחישוב הממוצע של התלמידמציאת התלמיד המצטייןהפקת תעודת ציונים8טיפול בשגיאות ובחריגות
הבנת שגיאות PHPבלוק try...catchבלוק finallyזריקת חריגהיצירת חריגה מותאמת אישיתשימוש בחריגה מותאמת אישיתסיכום: אימות קלט3מיון מערכים
מיון מערכים עם אינדקסים בסדר עולהמיון מערכים עם אינדקסים בסדר יורדמיון מערכים אסוציאטיביים לפי ערךמיון מערכים אסוציאטיביים לפי מפתחמיון בסדר טבעימיון מותאם אישית באמצעות 'usort'סיכום: מיון טבלת מוביליםתרגלו בעצמכם: קומפיילר PHP אונליין