Menu
CoddyTech

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

אפשר גם לזרוק חריגה בעצמך באמצעות מילת המפתח throw. לאחר מכן PHP קופץ ישירות לבלוק catch, והמתודה getMessage() מחזירה את ההודעה שלך:

throw new Exception("Custom error message");
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 אונליין