Python

Penanganan Pengecualian dengan Python

Penanganan Pengecualian dengan Python
Ketika kami menjalankan kode apa pun yang mengandung kesalahan maka kesalahan ditampilkan di output dengan menghentikan eksekusi program. Beberapa kesalahan mungkin tidak dikenali oleh pengguna dan menciptakan situasi yang tidak diinginkan bagi mereka. Tetapi jika kesalahan dapat ditampilkan dalam format yang dapat dimengerti oleh pengguna, maka mudah bagi mereka untuk mengetahui alasan kesalahan tersebut. Dalam pemrograman berorientasi objek apa pun, coba tangkap atau coba-tangkap-akhirnya blok digunakan untuk menangani kesalahan dan menampilkannya dalam format yang dapat dibaca yang disebut penanganan pengecualian. Bagaimana penanganan eksepsi dapat dilakukan dalam skrip Python ditunjukkan dalam tutorial ini.

Sintaks:

mencoba:
blok…
kecuali Pengecualian:
penangan…
lain:
blok…
akhirnya:
blok…

Di sini, jika terjadi kesalahan saat menjalankan pernyataan dari mencoba blok maka pengecualian akan dibuat dan melemparkan kesalahan ke yang sesuai kecuali pawang. Beberapa kesalahan dapat dihasilkan dalam satu mencoba blok dan kemudian Anda harus menulis banyak kecuali penangan.  Pernyataan dari lain blok akan dieksekusi jika tidak ada kesalahan yang terjadi di mencoba blok. Pernyataan dari akhirnya blok akan dieksekusi jika terjadi kesalahan atau tidak terjadi. Untuk penanganan pengecualian, gunakan lain dan akhirnya blok tidak penting. Berbagai jenis penanganan pengecualian dalam python dijelaskan di bagian selanjutnya dari tutorial.

Contoh-1: Penggunaan blok try-except tunggal untuk memvalidasi data numerik:

Contoh ini menunjukkan penggunaan penanganan pengecualian yang sangat sederhana di Python. Dalam mencoba blok, dua input akan diambil dari pengguna, satu adalah nilai string dan lainnya adalah nilai numerik.  Jika pengguna mengetikkan nilai string apa pun sebagai ganti nilai numerik untuk input kedua, maka NilaiError pengecualian akan dihasilkan oleh python3 dan pesan kesalahan khusus akan ditampilkan dari kecuali blok.

#!/usr/bin/env python3
# Tentukan blok coba
mencoba:
# Ambil data apa pun sebagai string
nama = input("Masukkan Nama Anda : \n")
# Ambil data numerik apa pun
umur = int(input("Masukkan umur anda : \n"))
# Cetak data yang diformat dengan nama dan usia
print("Halo %s, Anda berumur %s tahun." %(nama, umur))
# menangani kesalahan input
kecuali (ValueError):
# Cetak pesan kesalahan khusus
print("Masukan salah! Anda harus mengetikkan angka sesuai usia Anda.")

Keluaran:

Script dieksekusi dua kali dalam output berikut dengan input yang salah dan input yang benar. Pertama kali, ketika pengguna mengetik 'Tiga puluh satu' sebagai nilai usia untuk input kedua yang mengambil nilai numerik maka a NilaiError dihasilkan dan pesan kesalahan ditampilkan dari blok kecuali. Kedua kalinya, tidak ada kesalahan yang dihasilkan untuk nilai input yang benar.

Contoh-2: Penggunaan beberapa blok kecuali untuk menangani banyak kesalahan:

Bagaimana Anda dapat menggunakan beberapa blok kecuali untuk menangani banyak kesalahan ditunjukkan dalam contoh ini.  Dua jenis kesalahan akan ditangani dalam skrip ini. Nama file diambil sebagai input dari pengguna untuk dibaca. Jika file tidak ada maka akan menghasilkan sebuah IOError pengecualian dan jika file ada tetapi kosong maka itu akan memunculkan pengecualian khusus. Untuk ini, dua kecuali blok digunakan dalam skrip ini. Ketika tidak ada kesalahan yang terjadi maka konten file akan ditampilkan.

#!/usr/bin/env python3
# Impor modul os
impor os
# Tentukan blok coba
mencoba:
# Ambil nama file sebagai input
nama file = input('Masukkan nama file\n')
# Buka file untuk dibaca
file_handler = buka(nama file)
# Atur pencari pencari dari 0 ke akhir file
file_handler.cari (0, os.SEEK_END)
# Baca ukuran file dalam byte
ukuran = file_handler.menceritakan()
# Cetak konten file dan jumlah karakter file
jika (ukuran > 0):
# Atur ponter ke awal file
file_handler.cari(0)
# Baca dan simpan konten file dalam variabel
file_content = file_handler.Baca()
print("\nIsi file yang diberikan di bawah\n")
cetak(file_konten)
print("Ukuran file adalah %d byte"  %size)
lain:
# Naikkan pengecualian jika file kosong
raise Exception('File tidak memiliki konten.')
# Cetak pesan kesalahan jika file tidak ada
kecuali IOError sebagai kesalahan:
cetak (kesalahan)
# Cetak pesan kesalahan jika file kosong
kecuali Pengecualian sebagai e:
print('Kesalahan:%s' %e)
# Cetak pesan jika tidak ada kesalahan
lain:
print('Tidak terjadi kesalahan')

Keluaran:

Script dieksekusi selama tiga kali. Pertama kali, nama file diberikan yang tidak ada dan output menunjukkan pesan IOError. Kedua kalinya, nama file diberikan yang ada tetapi tidak memiliki konten dan output menunjukkan pesan khusus. Ketiga kalinya, nama file diberikan yang ada dan berisi teks. Output menunjukkan konten file.

Contoh-3: Penggunaan blok coba-kecuali-akhirnya untuk menangani kesalahan pembagian

Contoh menunjukkan penggunaan blok coba-kecuali-akhirnya untuk menangani kesalahan pembagian division. Dua nilai numerik akan diambil sebagai input dan membagi input pertama dengan input kedua di blok try. Dua jenis kesalahan dapat terjadi di sini. Satu adalah NilaiError ketika pengguna akan mengetik nilai apa pun tanpa nomor dan yang lainnya adalah ZeroDivisionError ketika pengguna akan mengambil 0 sebagai masukan kedua.

#!/usr/bin/env python3
# Tentukan blok coba
mencoba:
# Masukkan dua angka float
n1 = float(input('Masukkan angka\n'))
n2 = float(input('Masukkan angka\n'))
# Bagilah angka-angka ini
pembagian = n1 / n2
# Menangani kesalahan
kecuali (ZeroDivisionError, ValueError):
print("Kesalahan dibagi nol atau Nilai bukan angka")
# Cetak pesan jika tidak terjadi kesalahan
lain:
print("Hasil pembagian adalah %f" %pembagian )
# Cetak pesan jika terjadi kesalahan atau tidak terjadi
akhirnya:
print("Akhir")

Keluaran:

Di sini, skrip dijalankan dua kali dengan input yang benar dan input kedua sebagai 0. Jadi, pengecualian kedua kalinya dibuat dan menampilkan pesan kesalahan.

Kesimpulan:

Tutorial ini menunjukkan proses penanganan pengecualian dasar di python3 untuk pengguna python baru. Pembaca akan dapat memahami apa itu penanganan pengecualian dan bagaimana menerapkan dalam skrip python setelah mempraktikkan contoh di atas.

OpenTTD vs Simutrans
Membuat simulasi transportasi Anda sendiri bisa menyenangkan, santai, dan sangat menarik. Itulah mengapa Anda perlu memastikan bahwa Anda mencoba game...
Tutorial OpenTTD
OpenTTD adalah salah satu game simulasi bisnis paling populer di luar sana. Dalam game ini, Anda perlu membuat bisnis transportasi yang luar biasa. Na...
SuperTuxKart untuk Linux
SuperTuxKart adalah judul hebat yang dirancang untuk memberi Anda pengalaman Mario Kart gratis di sistem Linux Anda. Ini cukup menantang dan menyenang...