יצירת שגיאות פשוטות
חלק מהיחידה יסודות במסלול ה-GO של Coddy. שיעור 106 מתוך 109.
ב-Go, אפשר ליצור שגיאות מותאמות אישית באמצעות הפונקציה errors.New() מהספרייה הסטנדרטית.
ייבא את חבילת השגיאות:
import (
"errors"
"fmt"
)צרו שגיאה פשוטה עם הודעה:
func divide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("cannot divide by zero")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Result:", result)
}
}הפלט יהיה:
Error: cannot divide by zeroאתגר
מתחיליםבאתגר הזה תתרגלו יצירת שגיאה פשוטה ב-Go באמצעות הפונקציה errors.New().
יש לכם פונקציה שבודקת אם שם משתמש תקין. שם משתמש נחשב תקין אם יש בו לפחות 5 תווים. עליכם להשלים את הפונקציה באמצעות החזרת שגיאה מתאימה כאשר שם המשתמש קצר מדי.
נסו בעצמכם
package main
import (
"errors"
"fmt"
)
func main() {
// בדיקה עם שם משתמש תקין
result, err := validateUsername("gopher123")
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println(result)
}
// בדיקה עם שם משתמש לא תקין
result, err = validateUsername("go")
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println(result)
}
}
func validateUsername(username string) (string, error) {
if len(username) < 5 {
// TODO: החזירו שגיאה עם ההודעה "username must be at least 5 characters long"
// רמז: השתמשו ב-errors.New() כדי ליצור שגיאה חדשה
return "", nil // החליפו את השורה הזו
}
return "Username is valid", nil
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
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 אונליין