Kotlin:
Xử lý lỗi
Làm thế nào:
Kotlin cung cấp try
, catch
, finally
, và throw
để quản lý lỗi. Dưới đây là cách bạn sử dụng chúng:
fun main() {
val numerator = 10
val denominator = 0
try {
val result = numerator / denominator
println("Kết quả: $result")
} catch (e: ArithmeticException) {
println("Không thể chia cho không, bạn nhé.")
} finally {
println("Điều này xảy ra bất kể trường hợp nào.")
}
}
Kết quả:
Không thể chia cho không, bạn nhé.
Điều này xảy ra bất kể trường hợp nào.
Nếu có điều gì đó không ổn trong khối try
, việc thực thi sẽ chuyển nhanh sang catch
. Nó bắt lỗi cụ thể được ném ra (ArithmeticException
trong trường hợp này). Khối finally
chạy sau - không quan trọng kết quả là gì.
Tìm hiểu sâu hơn
Khối try-catch
đã tồn tại từ những ngày đầu lập trình - nó giống như một lưới an toàn. Kotlin cũng cung cấp throw
để tự tay ném một ngoại lệ vào vòng, và có finally
dành cho mã phải chạy - thường là công việc dọn dẹp.
Các phương án khác bao gồm kiểu Result
và việc sử dụng try
của Kotlin như một biểu thức.
val result: Result<Int> = try {
Result.success(numerator / denominator)
} catch (e: ArithmeticException) {
Result.failure(e)
}
Cách tiếp cận này trả về một đối tượng Result
- bạn nhận được hoặc là thành công hoặc là thất bại mà không gặp phải drama của một ngoại lệ không được xử lý.
Việc triển khai trong Kotlin được coi là gọn gàng bởi bạn có thể sử dụng try
như một biểu thức, có nghĩa là nó trả về một giá trị. Những lựa chọn như thế này làm cho việc xử lý lỗi trong Kotlin trở nên rất linh hoạt. Nó giống như việc chọn công cụ phù hợp cho công việc, giống như bạn làm trong một xưởng.
Xem thêm
- Tài liệu Kotlin về Ngoại lệ: Xử lý Ngoại lệ Kotlin
- Tài liệu về kiểu
Result
của Kotlin: Kotlin Result - Effective Java, Ấn bản thứ 3, của Joshua Bloch - có cái nhìn sâu sắc về ngoại lệ, mặc dù đặc thù cho Java.