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, מהדורה שלישית, מאת ג’ושוע בלוך - תובנות נהדרות על חריגים, למרות שהוא ספציפי לג’אווה.