Penanganan Coba/Kecuali & Kesalahan Python

Cegah skrip Python Anda agar tidak mogok. Pelajari blok coba, kecuali, akhirnya, dan cara memunculkan pengecualian khusus dengan benar.

Coba di Editor

Ikhtisar

Dalam dunia pemrograman nyata, kesalahan tidak bisa dihindari. File mungkin terhapus, koneksi jaringan mungkin terputus, atau pengguna mungkin memasukkan huruf saat skrip Anda mengharapkan angka. Jika skenario ini terjadi tanpa perlindungan, Python menghentikan eksekusi dan memunculkan Pengecualian (kesalahan waktu proses), sehingga membuat seluruh program mogok. Penanganan kesalahan adalah seni mengantisipasi dan mengelola kegagalan ini dengan baik.

Dasar dari manajemen kesalahan dengan Python adalah struktur blok `coba` dan `kecuali`. Anda menempatkan kode yang berpotensi berbahaya di dalam blok `coba`. Python akan mencoba menjalankannya. Jika terjadi kesalahan, alih-alih mogok, Python mencegat pengecualian tersebut dan segera melompat ke bawah untuk mengeksekusi kode yang terdapat dalam blok `kecuali`. Hal ini memungkinkan program untuk pulih, menampilkan pesan kesalahan yang ramah, dan terus berjalan.

Ini adalah praktik terbaik yang penting untuk menangkap pengecualian yang spesifik dan bertarget daripada menulis blok `kecuali:` secara menyeluruh. Misalnya, menangkap `FileNotFoundError` atau `ValueError` secara eksplisit memastikan Anda menangani masalah persis seperti yang Anda antisipasi, daripada menyembunyikan bug yang tidak terkait secara tidak sengaja (seperti kesalahan sintaksis) yang benar-benar perlu Anda ketahui.

Python juga menyediakan blok `else` opsional, yang dijalankan hanya jika blok `coba` berhasil diselesaikan sepenuhnya tanpa menimbulkan kesalahan apa pun. Ini adalah tempat yang tepat untuk meletakkan logika yang sangat bergantung pada keberhasilan operasi berbahaya. Selain itu, blok `finally` menyediakan cara untuk mengeksekusi kode apa pun yang terjadi—apakah terjadi kesalahan atau tidak. Blok `akhirnya` sangat penting untuk tindakan pembersihan, seperti menutup koneksi database atau melepaskan kunci file.

Selain menangkap kesalahan, Python memungkinkan pengembang untuk memicu kesalahan tersebut secara eksplisit menggunakan kata kunci `raise`. Menaikkan pengecualian memungkinkan Anda menerapkan batasan ketat pada logika Anda, menolak data yang tidak valid sebelum data tersebut merusak status aplikasi Anda. Dengan mendefinisikan kelas pengecualian khusus yang mewarisi kelas `Pengecualian` dasar Python, pengembang dapat membuat hierarki kesalahan yang sangat spesifik untuk domain untuk aplikasi perusahaan besar.

Kode & Output Eksekusi

Menciptakan keamanan struktural saat berinteraksi dengan struktur file yang berpotensi berbahaya atau tidak ada.

def divide_numbers(a, b):
    try:
        result = a / b
    except ZeroDivisionError:
        return "Error: Cannot divide by zero!"
    except TypeError:
        return "Error: Both arguments must be numbers."
    else:
        return f"The result is {result}"
    finally:
        print("Execution completed.")

print(divide_numbers(10, 2))
print(divide_numbers(10, 0))
Keluaran Terminal
Execution completed.
The result is 5.0
Execution completed.
Error: Cannot divide by zero!

Implementasi Langkah demi Langkah

  • Memvalidasi pengiriman formulir pengguna
  • Memastikan permintaan jaringan tidak mogok saat batas waktu habis
  • Menutup koneksi database dengan aman di blok akhirnya

Pertanyaan yang Sering Diajukan

Apa kata kunci "naikkan"?

Kata kunci raise digunakan untuk menaikkan pengecualian dengan sengaja. Anda dapat menentukan jenis kesalahan yang akan dimunculkan, dan teks yang akan dicetak kepada pengguna.

Topik Terkait

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.