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

Penanganan Pengecualian
Menyesuaikan Kelas Pengecualian

Tujuan

Verifikasi air hujan yang dikumpulkan dan pastikan ia diproses dan dipindahkan dengan benar dengan menyesuaikan kelas pengecualian.

Di ujung jauh komplek atap terdapat sebuah cistern air hujan yang dikumpulkan, air ini disaring dan dialirkan ke seluruh gedung untuk berbagai keperluan. Beberapa katup di dinding atas mengontrol tekanan aliran air, sementara itu ruang penyimpanan terakhir menampung berbagai pemanas air. Operasi mesin bisa jadi rumit, namun operasinya dapat disederhanakan secara efektif dengan merinci kode kesalahan dan menetapkan langkah-langkah penanggulangan yang efektif. Hal ini dicapai dengan menyesuaikan kelas pengecualian yang kamu buat untuk pengecualian khususmu.

Terdapat dua kelas pengecualian khusus yang disiapkan di editor kode, kemampuanmu untuk menggunakannya akan sangat penting untuk mengatasi masalah mesin yang mungkin kamu temui. Yang pertama adalah pengecualian untuk mengatasi masalah tekanan air. Pengecualian ini dimaksudkan untuk digunakan dengan katup guna memastikan air mengalir dengan benar ke dalam komplek atau jika tekanan perlu disesuaikan. Tergantung apakah tekanan di bawah 100 atau di atas 300 akan diambil tindakan yang berbeda oleh pengecualian tersebut, tekanan tersebut merupakan argumen yang harus disediakan oleh pengguna. Setelah dipicu, sebuah pop-up khusus yang memuat kode kesalahan dan pesan akan ditampilkan.

class PressureError(Exception): def __init__(self, pressure, message="Water pressure is offset, pressure is: ", error_code=404): self.pressure = pressure self.message = message self.error_code = error_code super().__init__(self.message) async def __str__(self): await player.write("[Error: %s {%s %s}]" % (self.error_code , self.message, self.pressure)) if self.pressure < 100: return ("Valve has been closed") if self.pressure > 360: return ("Valve has been opened")

Kelas pengecualian khusus kedua ditujukan untuk mengatur suhu pada pemanas air, jika suhunya terlalu rendah atau terlalu tinggi, kamu harus memasukkan suhu baru sebagai argumen untuk mengoreksi kesalahan setelah terjadi.

class TemperatureError(Exception): def __init__(self, temp, message="Temperature is not appropiate, enter new temperature: ", error_code=808): self.temp = temp self.message = message self.error_code = error_code super().__init__(self.message) async def __str__(self): await player.write("[Error: %s {%s %s}]" % (self.error_code , self.message, self.temp)) return ("Temperature Corrected")

Untuk memulai, berjalanlah ke tanda X berwarna terang di atas karpet hijau dan hadapi tangki dengan katup, terdapat empat (4) di antaranya yang mengatur tekanan air yang dipompa dari cistern. Terdapat empat (4) konstanta variabel: green_pressure, red_pressure, blue_pressure dan orange_pressure, yang menyimpan tekanan masing-masing tangki dengan karpet berwarna yang bersesuaian.

Di semua tanda X berwarna terang, gunakan urutan blok kode try/except dan else untuk memverifikasi apakah tekanan di setiap tangki sudah sesuai. Jika tekanan di bawah 100 atau jika di atas 300 maka timbulkan pengecualian khusus PressureError dan tambahkan tekanan sebagai argumen. Jika dipicu, itu akan menampilkan kode kesalahan dan melakukan koreksi, jika tidak maka klausa else akan dijalankan yang mengonfirmasi bahwa tekanan di tangki sudah sesuai. Sebagai contoh:

try: if green_pressure < 100 or green_pressure > 360: raise PressureError(green_pressure) except PressureError as x: player.speak(x) else: player.speak( "Pressure is appropriate" )

Lakukan hal ini pada semua tanda X berwarna terang, dengan menggunakan konstanta variabel yang sesuai dengan setiap karpet berwarna dan verifikasi atau sesuaikan katup tekanan sesuai kebutuhan.

Setelah selesai, berjalanlah ke tanda X berwarna emas dan gunakan fungsi open() untuk mengakses ruang penyimpanan dengan pemanas air, setelah berada di dalam, berjalanlah ke tanda X berwarna emas yang ada di dalam ruang penyimpanan dan gunakan fungsi read() untuk membaca memo pada meja. Memo ini akan memberimu informasi tentang suhu ideal untuk masing-masing pemanas air.

Setelah kamu memiliki informasi tentang masing-masing suhu, berjalanlah ke tanda X berwarna gelap di atas karpet ungu, di sini kita akan menggunakan urutan kode try/except dan else untuk memverifikasi apakah pemanas air memiliki suhu yang benar. Terdapat empat (4) konstanta variabel lainnya yang terkait dengan karpet berwarna: purple_temperature, yellow_temperature, pink_temperature dan white_temperature.

Dalam urutan tersebut, kita akan memverifikasi jika suhu di bawah 100, jika ya, maka kita akan menimbulkan pengecualian TemperatureError. Sebagai pengecualian yang dikustomisasi, ia memerlukan sebuah argumen, dalam kasus ini kamu harus memasukkan suhu yang dibaca dari memo agar dapat mengeksekusi langkah penanggulangan pengecualian dengan benar. Sebagai contoh:

try: if purple_temperature < 100: raise TemperatureError(120) except TemperatureError as x: player.speak(x) else: player.speak( "Temperature is ok" )

Lakukan hal ini untuk semua pemanas air, pada setiap tanda X sambil menghadap pemanas, jalankan urutan menggunakan konstanta variabel yang sesuai dengan karpet berwarna yang benar untuk menyelesaikan level tersebut.

Buku Kode