Kotlin:
טיפול בשגיאות

איך לעשות:

קוטלין מספקת את המילים השמורות try, catch, finally ו- throw כדי לנהל שגיאות. וכך אתה משתמש בהם:

fun main() {
    val numerator = 10
    val denominator = 0

    try {
        val result = numerator / denominator
        println("תוצאה: $result")
    } catch (e: ArithmeticException) {
        println("אי אפשר לחלק באפס, חבר.")
    } finally {
        println("זה קורה לא משנה מה.")
    }
}

פלט:

אי אפשר לחלק באפס, חבר.
זה קורה לא משנה מה.

אם משהו לא תקין קורה בבלוק ה-try, הביצוע מתחיל לדלג ל-catch. הוא תופס את השגיאה הספציפית שנזרקה (במקרה זה ArithmeticException). הבלוק finally רץ לאחר מכן - לא משנה מה התוצאה.

טבילה עמוקה

בלוק try-catch הוא דבר מימי התוכנות המוקדמים - זה כמו רשת ביטחון. קוטלין גם מציעה את throw לזריקת חריגה באופן ידני לרינג, ויש את finally לקוד שחייב לרוץ - עבודות ניקוי, לרוב.

חלופות כוללות את סוג Result ואת קוטלין try בתור ביטוי.

val result: Result<Int> = try {
    Result.success(numerator / denominator)
} catch (e: ArithmeticException) {
    Result.failure(e)
}

גישה זו מחזירה אובייקט Result - אתה מקבל או הצלחה או כישלון ללא הדרמה של חריגה שלא טופלה.

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

ראה גם

  • מסמכי קוטלין על חריגים: טיפול בחריגות בקוטלין
  • מסמכי סוג Result של קוטלין: תוצאת קוטלין
  • Effective Java, מהדורה שלישית, מאת ג’ושוע בלוך - תובנות נהדרות על חריגים, למרות שהוא ספציפי לג’אווה.