Coding for KidsCoding for Kids
Level KreatifTantanganPanduan Guru
Voting untuk fitur
Kursus Pengembangan Python Lanjutan
Bab
>
Tingkat

Penanganan Pengecualian
Pengecualian Kustom

Objective

Gunakan exception kustom untuk mengumpulkan pesan dengan pesanan produk dan mengirimkannya melalui merpati.

Beberapa pesan disebarkan ke seluruh peternakan dan stasiun lainnya melalui merpati pengantar, akan menjadi ide yang baik untuk mengirim beberapa agar tetap di depan jadwal. Kita sebelumnya menangkap error menggunakan exception umum, namun terkadang kamu akan mendapatkan manfaat dengan membuat exception kustom untuk skenario yang sangat spesifik. Kita akan mendapatkan pesan dan memilih merpati dengan mengidentifikasi item yang tepat menggunakan exception kustom kita sendiri.

Exception kustom dibuat dengan menyusun kelas, dengan menambahkan klausa (Exception) kamu dapat mengubah sebuah kelas untuk menangani exception. Untuk keperluan kita, kita akan membuat dua: InvalidLocation yang diaktifkan ketika sebuah string tertentu tidak lulus verifikasi, dan UnsuitableSelection yang digunakan untuk memeriksa apakah sebuah angka melewati ambang batas tertentu.

class InvalidLocation(Exception): "Raised when location is invalid" pass class UnsuitableSelection(Exception): "Raised when pidgeon is 2 or younger" pass

Sekarang kelas-kelas sudah disiapkan, saatnya untuk mengambil memo agar bisa dikirim. Buatlah sebuah list bernama prep untuk menyimpan dan menggabungkan komponen yang diperlukan untuk pertukaran yang akan datang. Berjalanlah ke tanda X gelap di atas karpet merah, pada deretan meja dengan tanda X di depannya kita akan mencari memo yang berisi pesanan untuk sektor barat peternakan.

Ada empat konstanta variabel yang digunakan dalam segmen ini: red_memo, blue_memo, green_memo dan orange_memo. Hanya memo yang ditandai untuk dikirim ke sektor "west" yang akan dikumpulkan agar bisa dikirim. Untuk menentukan apakah kita mengambil memo atau tidak, kita akan menggunakan blok kode try/except dan else bersama dengan exception kustom InvalidLocation. Untuk menggunakan exception kustom, biarkan blok try memeriksa apakah memo diberi label "west" dan jika tidak, lempar exception tersebut. Blok except mengonfirmasi bahwa memo tidak valid dan blok else mengumpulkan, serta menambahkan memo ke dalam list prep jika ternyata memo ditujukan ke sektor "west". Sebagai contoh:

try: if red_memo != "west": raise InvalidLocation except InvalidLocation: player.speak("This is not an order that needs to be sent out") else: player.collect(red_memo) prep.append(red_memo)

Berjalanlah ke setiap tanda X gelap di atas karpet berwarna di depan meja dan jalankan urutan exception menggunakan konstanta variabel yang sesuai dengan setiap warna.

Setelah kamu mengumpulkan memo, berjalanlah ke tanda X emas di depan pintu dan gunakan fungsi open() untuk mengakses kandang merpati. Setelah masuk, berjalanlah ke tanda X terang, berbalik, dan gunakan fungsi close() untuk menutup pintu agar tidak ada merpati yang lolos.

Berjalanlah ke tanda X gelap di atas karpet ungu, pada pena kita akan memverifikasi apakah merpati cukup tua untuk mengantarkan pesan atau jika ia masih bayi yang tidak mampu melakukan pengiriman. Ada empat lagi konstanta variabel yang digunakan dalam segmen ini: purple_pen, yellow_pen, white_pen dan pink_pen yang sesuai dengan masing-masing karpet berwarna. Kita akan menggunakan teknik yang sama seperti pada memo, dengan menggunakan kelas kedua yang telah disiapkan.

Gunakan blok kode try/except dan else dengan exception kustom UnsuitableSelection untuk mengidentifikasi apakah merpati cukup tua untuk melakukan pengiriman. Blok try memverifikasi apakah konstanta variabel yang mewakili pena memiliki merpati yang sesuai dengan memeriksa jika burung tersebut berumur kurang dari dua (2) tahun. Jika merpati tidak sesuai, blok except akan dipicu, sedangkan jika sesuai maka blok else akan diaktifkan sehingga kamu dapat menambahkan merpati ke list prep agar dapat mengirim pesan.

try: if purple_pen <= 2: raise UnsuitableSelection except UnsuitableSelection: player.speak("Pigeon unsuitable to deliver") else: prep.append(purple_pen) player.speak("Pigeon Collected")

Pergilah ke setiap tanda X gelap di atas karpet berwarna dan gunakan urutan ini dengan konstanta variabel yang benar sesuai dengan karpet berwarna yang tepat. Setelah kamu mengumpulkan merpati dan pesan, berjalanlah ke tanda X emas di bagian paling bawah dan gunakan fungsi place() dengan list prep yang telah kamu buat agar merpati dapat dikirim untuk mengantarkan pesan dan menyelesaikan level.

Buku Kode