בלוק try...catch
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 53 מתוך 68.
כאשר קוד ה-PHP שלך נתקל בבעיות שעלולות לגרום לו לקרוס, יש צורך בדרך לטפל במצבים האלה בצורה מסודרת. בלוק try...catch מספק גישה מובנית לטיפול בחריגות — אובייקטי שגיאה מיוחדים שמייצגים בעיות חמורות בקוד שלך.
בלוק try מכיל קוד שעלול להיכשל או להשליך חריגה. אם מתרחשת חריגה בתוך הבלוק הזה, PHP מפסיקה מיד לבצע את שאר הקוד בבלוק try וקופצת לבלוק catch המתאים. בלוק catch מטפל בחריגה, ומאפשר לסקריפט שלך להמשיך לפעול במקום לקרוס.
<?php
try {
// קוד שעלול לזרוק חריגה
$result = riskyFunction();
echo "Success!";
} catch (Exception $e) {
// טפל בחריגה
echo "An error occurred: " . $e->getMessage();
}
?>בלוק catch מקבל אובייקט Exception שמכיל מידע על מה השתבש. אפשר לגשת להודעת השגיאה באמצעות המתודה getMessage(). גישה זו מונעת מכל הסקריפט שלך להיעצר כשמשהו משתבש, ומאפשרת לך לשלוט באופן הטיפול בשגיאות ובמה שהמשתמשים שלך רואים.
אתגר
קלתקבלו קלט אחד: מספר המייצג גיל. הקלט עשוי להיות מספר שלילי, שאינו תקין כגיל.
קראו את הקלט, המירו אותו למספר שלם וצרו בלוק try...catch. בתוך בלוק ה-try, בדקו אם הגיל שלילי. אם הוא שלילי, זרקו Exception חדש עם ההודעה "Age cannot be negative". אם הגיל תקין (אפס או חיובי), הדפיסו "Valid age: " ואחריו את ערך הגיל.
בבלוק ה-catch, טפלו בחריגה על ידי הדפסת "Error: " ואחריו הודעת החריגה באמצעות המתודה getMessage().
פורמט הקלט: שורה אחת המכילה מספר שלם (לדוגמה: 25 או -5)
הפלט הצפוי:
- אם הגיל תקין:
Valid age:ואחריו ערך הגיל - אם הגיל שלילי:
Error: Age cannot be negative
נסו בעצמכם
<?php
// קראו את הקלט
$age = intval(fgets(STDIN));
// TODO: כתבו את הקוד שלכם למטה
// צרו בלוק try...catch כדי לוודא שהגיל תקין
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
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 אונליין