Apa Itu Exception?
Termasuk bagian Logika dan Alur dalam perjalanan Ruby di Coddy. Pelajaran 43 dari 56.
Ketika terjadi kesalahan saat program berjalan, seperti membagi dengan nol, mengurai "abc" sebagai integer, atau memanggil method pada nil, Ruby memunculkan pengecualian. Program berhenti, dan Ruby mencetak apa yang terjadi beserta lokasi terjadinya.
10 / 0
# ZeroDivisionError: dibagi dengan 0Setiap jenis kegagalan memiliki class tersendiri. Beberapa jenis yang umum:
ZeroDivisionError: membagi bilangan bulat dengan nolArgumentError: argumen yang salah diberikan ke method (Integer("abc"))
NoMethodError: memanggil method yang tidak dimiliki oleh penerima (nil.upcase)TypeError: operasi pada jenis object yang salah ("a" + 1)
Setiap class exception memiliki .message: deskripsi yang dapat dibaca manusia dan dicetak Ruby saat exception tidak ditangani. Pelajaran berikutnya menunjukkan cara menangkap exception ini agar programmu tetap berjalan.
Tantangan
PemulaBaca satu baris input, yaitu nama satu ekspresi Ruby. Cetak nama class exception yang akan dimunculkan Ruby untuk ekspresi tersebut. Gunakan pernyataan case (tidak perlu benar-benar memunculkan exception):
divide-by-zero→ZeroDivisionErrornil-method→NoMethodErrorbad-integer→ArgumentErrorwrong-type→TypeError- selain itu →
Unknown
Untuk input nil-method, outputnya adalah NoMethodError.
Coba sendiri
kind = gets.chomp
# TODO: gunakan case kind ... print nama class exception yang sesuai
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami String
Ringkasan Method StringInterpolasi StringMenelusuri StringMemisahkan dan MenggabungkanRekap: Perangkai String4Block, Proc, dan Lambda
Apa Itu Block?do..end vs Kurung KurawalKata Kunci yieldParameter BlockProc dan LambdaRangkuman, Iterator Kustom5Andalan Enumerable
Select dan RejectMerangkai MapReduce / Injectcount, all?, any?, none?group_by dan partitionsort_by, min_by, max_byRekap: Alur Data8Pengambilan Keputusan Lanjutan
Case dengan class & regexwhen dengan Banyak NilaiOperator Ternaryif / unless SebarisUlasan, Pengklasifikasi Nilai3Array 2D
Dasar Array 2DMengakses Elemen Array 2DMenelusuri Array 2DPola Umum Array 2DRekap: Operasi Matriks6Proyek: Pengelola Perpustakaan
Ikhtisar ProyekTambahkan Buku9Penanganan error
Apa Itu Exception?begin / rescueBeberapa Klausa rescueensure dan raiseRingkasan, Kalkulator AmanLatihan sendiri: Compiler Ruby online