בדיקת שגיאות
חלק מהיחידה יסודות במסלול ה-GO של Coddy. שיעור 105 מתוך 109.
ב-Go, אנחנו בודקים אם יש שגיאות באמצעות משפטי if. התבנית הזאת נפוצה מאוד.
בדקו אם אירעה שגיאה באמצעות if err != nil:
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error occurred:", err)
return // עצור את הביצוע אם יש שגיאה
}
// המשך רק אם אין שגיאה
fmt.Println("Result:", result)
}הפלט יהיה:
Error occurred: cannot divide by zeroאתגר
מתחיליםב-Go, פונקציות מחזירות לעיתים קרובות ערך שגיאה שעליך לבדוק לפני השימוש בתוצאה. באתגר הזה תתרגל בדיקת שגיאות באמצעות ההצהרה if.
יש לנו פונקציה בשם openFile שמדמה פתיחת קובץ ומחזירה שגיאה אם הקובץ לא קיים. המשימה שלך היא לבדוק אם יש שגיאה ולהדפיס הודעה מתאימה.
נסו בעצמכם
package main
import (
"fmt"
)
// הפונקציה הזו מדמה פתיחת קובץ
// היא מחזירה שגיאה אם הקובץ לא קיים
func openFile(filename string) error {
if filename == "data.txt" {
return nil // nil פירושו שאין שגיאה
} else {
return fmt.Errorf("file %s not found", filename)
}
}
func main() {
filename := "config.txt"
// קראו לפונקציה openFile
err := openFile(filename)
// TODO: בדקו אם err אינו nil (כלומר התרחשה שגיאה)
// אם התרחשה שגיאה, הדפיסו: "Error: " ואחריו את הודעת השגיאה
// אם לא התרחשה שגיאה, הדפיסו: "File opened successfully"
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואה – חלק 1אופרטורי השוואה – חלק 2אופרטור AND לוגיאופרטור OR לוגיאופרטור NOT לוגייסודות קדימות אופרטוריםסיכום – ביצוע השוואות7זרימת בקרה: לולאות
הסבר על לולאת `for`לולאת `for` – בסיסיתלולאת `for` – תנאי בלבדמילת המפתח `break`מילת המפתח `continue`לולאות מקוננותסיכום – חזרה על פעולות2משתנים וסוגי נתונים בסיסיים
מהו משתנההסקת טיפוס באמצעות `:=`מספרים שלמים (int)מספרים בנקודה צפהערכים בוליאנייםמחרוזותערכי אפסקבועיםמוסכמות לשמותסיכום – משתנים וטיפוסים8פונקציות
הבנת פונקציותהצהרה על פונקציהקריאה לפונקציותפרמטרים של פונקציההחזרת ערך יחידהחזרת מספר ערכיםערכי החזרה בעלי שםיסודות תחום ההשפעה של פונקציהסיכום - יצירת קוד לשימוש חוזר11טיפוסים מורכבים: Slices
מבוא ל-Slicesהצהרת Literals של Sliceיצירת Slices באמצעות `make`אורך Slice לעומת קיבולתגישה לאיברים ב-Sliceהוספת איבריםחיתוך Slices/מערכים קיימיםמעבר על Slicesהעתקת Slicesסיכום – רשימות דינמיות14טיפול בסיסי בשגיאות
מושג השגיאותהממשק `error`פונקציות שמחזירות שגיאותבדיקת שגיאותיצירת שגיאות פשוטותיצירת שגיאות עם עיצובטיפול בסיסי בשגיאותסיכום – טיפול בבעיות3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור חילוקאופרטור מודולואופרטור השמהאופרטורי השמה מורחבתהגדלה והקטנהסיכום – חישובים6זרימת בקרה: תנאים
פקודת `if`מילת המפתח `else`מילת המפתח `else if`הסתרת משתנים בתוך `if`אתחול משתניםפקודת `switch``switch` עם ביטויים`switch` ללא ביטוימילת המפתח `fallthrough`סיכום - קבלת החלטותתרגלו בעצמכם: קומפיילר Go אונליין