Skip to main content
  1. Belajar/
  2. Python Fundamental/
  3. 11. Menangani Error (Error Handling) pada Python/

Blok Try-Except

12 mins· loading · loading ·
Menangani Error pada Python - This article is part of a series.
Part 2: This Article

a. Pengenalan Try-Except
#

Dalam pengembangan perangkat lunak, Try-Except adalah mekanisme yang penting untuk menangani exception atau kesalahan yang mungkin terjadi selama eksekusi kode. Blok Try digunakan untuk mengelompokkan potongan kode yang mungkin menyebabkan exception, sementara blok Except memberikan penanganan khusus untuk setiap jenis exception yang mungkin muncul.

b. Penggunaan dasar Try-Except
#

Contoh sederhana penggunaan Try-Except adalah ketika kita mencoba melakukan pembagian oleh nol. Dengan Try-Except, kita dapat mengantisipasi ZeroDivisionError:

Perhatikan contoh berikut:

try:
    hasil = 10 / 0
except ZeroDivisionError as e:
    print(f"Error: {e}")

Hasil:

Error: division by zero

Blok Try mencoba mengeksekusi kode di dalamnya, dan jika suatu exception terjadi, kontrol langsung beralih ke blok Except yang sesuai dengan jenis exception yang terjadi. Dalam contoh di atas, kita menggunakan Except block untuk menangani ZeroDivisionError dan mencetak pesan kesalahan yang bersesuaian.

c. Multi Blok Except
#

Dalam situasi di mana kita memiliki beberapa jenis exception yang mungkin terjadi, multi blok Except memungkinkan kita untuk menangani setiap jenis exception secara khusus. Ini dapat meningkatkan kejelasan dan keamanan kode kita.

try:
    # kode yang mungkin menyebabkan error
except (TypeError, ValueError) as e:
    print(f"Penanganan error untuk TypeError dan ValueError: {e}")

Penjelasan Kode:

  • Kode di dalam blok Try mungkin menyebabkan exception TypeError atau ValueError.
  • Blok Except menangkap kedua jenis exception tersebut dan mencetak pesan error yang sesuai.

Hasil:

Penanganan error untuk TypeError dan ValueError: ...

Dengan pendekatan ini, kita dapat menangani beberapa jenis exception dengan satu blok Try-Except, menghindari pengulangan kode yang tidak perlu.

d. Mengatasi berbagai jenis error dengan Except Blocks yang spesifik
#

Menggunakan Except blocks yang spesifik membantu kita menyusun kode yang lebih terstruktur dan dapat meminimalkan potensi kesalahan. Contoh di bawah menunjukkan penanganan dua jenis exception dengan blok Except yang sesuai.

try:
    # kode yang mungkin menyebabkan error
except FileNotFoundError as e:
    # penanganan error untuk file yang tidak ditemukan
except (IOError, PermissionError) as e:
    # penanganan error untuk masalah IO atau permission

Penjelasan Kode:

  • Kode di dalam blok Try mungkin menyebabkan exception FileNotFoundError, IOError, atau PermissionError.
  • Blok Except menangkap exception sesuai jenisnya dan mencetak pesan error yang sesuai.

Dengan cara ini, kita dapat menyusun penanganan error yang lebih spesifik sesuai dengan jenis exception yang mungkin terjadi.

e. Penggunaan Else dalam Blok Try-Except
#

Blok Else digunakan untuk menentukan kode yang akan dieksekusi jika tidak ada exception yang terjadi dalam blok Try. Ini memungkinkan kita untuk memisahkan logika normal dari penanganan exception.

try:
    x = int(input("Masukkan sebuah angka: "))
except ValueError as ve:
    print(f"Error: {ve}. Pastikan Anda memasukkan angka.")
else:
    print(f"Anda memasukkan angka {x}.")

Penjelasan Kode:

  • Kode di dalam blok Try mencoba mengonversi input pengguna menjadi integer.
  • Jika exception ValueError terjadi (karena pengguna memasukkan bukan angka), kontrol beralih ke blok Except yang sesuai.
  • Blok Except mencetak pesan error.
  • Jika tidak ada exception, blok Else dijalankan dan mencetak pesan yang menyatakan bahwa pengguna memasukkan angka.

Hasil (contoh dengan input angka):

Anda memasukkan angka 42.

Dengan menempatkan kode normal di blok Else, kita dapat membuat struktur kode yang lebih bersih dan lebih mudah dimengerti.

f. Menangani Error dan Mengambil Tindakan Spesifik
#

Contoh di bawah menunjukkan penggunaan Try-Except-Else untuk membaca nilai dari pengguna dan menangani kesalahan entri yang mungkin terjadi.

try:
    x = int(input("Masukkan sebuah angka: "))
except ValueError as ve:
    print(f"Error: {ve}. Pastikan Anda memasukkan angka.")
else:
    print(f"Anda memasukkan angka {x}.")

Penjelasan Kode:

  • Kode di dalam blok Try mencoba mengonversi input pengguna menjadi integer.
  • Jika exception ValueError terjadi (karena pengguna memasukkan bukan angka), kontrol beralih ke blok Except yang sesuai.
  • Blok Except mencetak pesan error.
  • Jika tidak ada exception, blok Else dijalankan dan mencetak pesan yang menyatakan bahwa pengguna memasukkan angka.

Hasil Print (contoh dengan input angka):

Anda memasukkan angka 42.

Hasil Print (contoh dengan input bukan angka):

Error: invalid literal for int() with base 10: 'bukan_angka'. Pastikan Anda memasukkan angka.

Dengan cara ini, kita dapat memberikan umpan balik yang sesuai kepada pengguna tergantung pada apakah mereka memasukkan angka atau bukan.

Menangani Error pada Python - This article is part of a series.
Part 2: This Article