Error Handling (Penanganan Error)
Error itu adalah kenyataan hidup di software, jadi Rust punya sejumlah fitur buat nanganin situasi di mana ada sesuatu yang salah. Di banyak kasus, Rust mewajibkan kita buat ngakuin kemungkinan adanya error dan ngambil suatu aksi sebelum kode kita bisa di-compile. Persyaratan ini bikin program kita jadi lebih kuat (robust) dengan mastiin kalau kita bakal nemuin error dan nanganin mereka dengan bener sebelum kita nge-deploy kode kita ke production!
Rust ngelempokin error jadi dua kategori besar: error recoverable (yang bisa dipulihkan) dan unrecoverable (yang nggak bisa dipulihkan). Buat error yang recoverable, kayak error file not found (file nggak ditemuin), kemungkinan besar kita cuma mau ngelaporin masalahnya ke user terus nyoba operasinya lagi. Error yang unrecoverable selalu jadi gejala dari bugs, kayak nyoba akses lokasi yang ngelewatin akhir dari sebuah array, dan makanya kita mau langsung ngehentiin programnya.
Kebanyakan bahasa nggak ngebedain dua jenis error ini dan nanganin keduanya
pake cara yang sama, pake mekanisme kayak exceptions (pengecualian). Rust nggak
punya exceptions. Sebaliknya, dia punya tipe Result<T, E> buat error yang
recoverable dan macro panic! yang ngehentiin eksekusi pas program nemu error
yang unrecoverable. Bab ini bakal bahas soal manggil panic! dulu terus bahas
soal balikin nilai Result<T, E>. Selain itu, kita bakal eksplor pertimbangan-
pertimbangan pas milih buat nyoba pulih (recover) dari error atau ngehentiin
eksekusi.