يمكن التعامل مع الأخطاء في Kotlin باستخدام الاستثناءات (Exceptions) أو باستخدام الإرجاعات (Return values).
أولاً، بإمكان المطور استخدام الاستثناءات للتعامل مع الأخطاء التي قد تحدث أثناء تنفيذ البرنامج. فعندما يحدث خطأ، يمكن رمي الاستثناء (Throwing an Exception) باستخدام كلمة throw والقيمة التي تحدد نوع الاستثناء.
مثال:
“`kotlin
fun divide(a: Int, b: Int): Int {
if (b == 0) {
throw IllegalArgumentException(“Cannot divide by zero”)
}
return a / b
}
“`
في المثال السابق، إذا تم تمرير قيمة b تساوي صفر، سيتم رمي استثناء ويتم إيقاف تنفيذ الدالة. يمكن للمستخدمين التقاط هذا الاستثناء باستخدام مقطع try-catch، كما يلي:
“`kotlin
try {
val result = divide(6, 0)
} catch (e: IllegalArgumentException) {
println(“Error: ${e.message}”)
}
“`
ثانياً، يمكن تجنب الاستخدام الزائد للأستثناءات باستخدام الإرجاعات. يمكم استخدام قيمة الإرجاع (return value) لإرجاع نتيجة واحدة عند وقوع الخطأ.
مثال:
“`kotlin
fun divide(a: Int, b: Int): Result
if (b == 0) {
return Result.failure(“Cannot divide by zero”)
}
return Result.success(a / b)
}
“`
في المثال السابق، تم استخدام كائن Result لإرجاع قيمة نتيجة الدالة مع الأخطاء المحتملة. يمكن لمستخدمي الدالة استخدام الدالة .success لاسترداد القيمة الناجحة و .failure للاسترداد الخطأ.
“`kotlin
val result = divide(6, 0)
when(result) {
is Result.Success
is Result.Failure
}
“`