Menu
Coddy logo textTech

בלוקי catch מרובים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C# של Coddy. שיעור 25 מתוך 66.

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

התחילו בבלוק try בסיסי:

try
{
    int number = int.Parse("abc");
}

הוסף בלוק catch עבור חריגה מסוימת:

try
{
    int number = int.Parse("abc");
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}

אפשר להוסיף כמה בלוקי catch כדי לטפל בחריגות שונות:

try
{
    int number = int.Parse("abc");
    int result = 10 / number;
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Divide By Zero Exception: " + ex.Message);
}

בלוק ה־catch הראשון שתואם יבוצע. סדרו את בלוקי ה־catch שלכם מהסוגים הספציפיים ביותר של חריגות ועד הכלליים ביותר.

challenge icon

אתגר

קל

צרו שיטה בשם DivideNumbers שמקבלת שני פרמטרים מסוג מחרוזת:

  • numeratorStr: מחרוזת שמייצגת את המונה
  • denominatorStr: מחרוזת שמייצגת את המכנה

השיטה צריכה:

  1. לנסות להמיר את שתי המחרוזות למספרים שלמים
  2. לנסות לחלק את המונה במכנה
  3. להחזיר את התוצאה כמספר שלם
  4. לטפל ב־FormatException באמצעות הדפסת "Invalid format" והחזרת 0
  5. לטפל ב־DivideByZeroException באמצעות הדפסת "Cannot divide by zero" והחזרת 0
  6. לטפל בכל חריגה אחרת באמצעות בלוק catch כללי שמדפיס "An error occurred" ומחזיר 0

נסו בעצמכם

using System;

public class Program
{
    public static int DivideNumbers(string numeratorStr, string denominatorStr)
    {
        // כתוב את הקוד שלך כאן
    }
    
    public static void Main(string[] args)
    {
        string numeratorStr = Console.ReadLine();
        string denominatorStr = Console.ReadLine();
        
        int result = DivideNumbers(numeratorStr, denominatorStr);
        Console.WriteLine("Result: " + result);
    }
}
quiz iconבחנו את עצמכם

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

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

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