Menu
Coddy logo textTech

בלוק 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(). גישה זו מונעת מכל הסקריפט שלך להיעצר כשמשהו משתבש, ומאפשרת לך לשלוט באופן הטיפול בשגיאות ובמה שהמשתמשים שלך רואים.

challenge icon

אתגר

קל

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

קראו את הקלט, המירו אותו למספר שלם וצרו בלוק 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 כדי לוודא שהגיל תקין


?>
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר PHP אונליין