בלוקי 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 שלכם מהסוגים הספציפיים ביותר של חריגות ועד הכלליים ביותר.
אתגר
קלצרו שיטה בשם DivideNumbers שמקבלת שני פרמטרים מסוג מחרוזת:
numeratorStr: מחרוזת שמייצגת את המונהdenominatorStr: מחרוזת שמייצגת את המכנה
השיטה צריכה:
- לנסות להמיר את שתי המחרוזות למספרים שלמים
- לנסות לחלק את המונה במכנה
- להחזיר את התוצאה כמספר שלם
- לטפל ב־FormatException באמצעות הדפסת "Invalid format" והחזרת 0
- לטפל ב־DivideByZeroException באמצעות הדפסת "Cannot divide by zero" והחזרת 0
- לטפל בכל חריגה אחרת באמצעות בלוק 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);
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםהכרזה ואתחול של מערכים דו־ממדייםגישה לאיברי מערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםמערכים משונניםפעולות מטריצה נפוצותחזרה – מערכים רב־ממדיים7אופרטורים לוגיים מתקדמים
הערכה בקיצור דרךאופרטורים לוגיים מותניםקדימות אופרטוריםסיכום – אופרטורים מתקדמים2קבלת החלטות מתקדמת
תנאים מרוביםלוגיקה בוליאנית מורכבתהשוואה בין If ל-Switchהצהרות Switch מקוננותסיכום — קבלת החלטות מתקדמת5טיפול בחריגות
יסודות try-catchסוגי חריגותבלוקי catch מרוביםעבודה עם קבציםבלוק finallyשימוש ב-using לעומת try-finallyחריגות מותאמות אישיתסיכום – טיפול בשגיאות3שיפורים בלולאות
ביצועי לולאותאיטרציה במבנים מורכביםכל אחד מסוגי הלולאותרפקטורינג של לולאותסיכום – לולאות שעברו אופטימיזציה6טיפול בערכי Null
יסודות הפניה ל-Nullטיפוסי ערכים שניתנים ל-Nullדפוסי בדיקת Nullתכנות הגנתיסיכום – בטיחות מול Nullתרגלו בעצמכם: קומפיילר C# אונליין