Penyebab pengecualian seringkali di luar program itu sendiri. Misalnya, input yang salah, perangkat IO yang tidak berfungsi, dll. Karena program tiba-tiba berhenti saat menghadapi pengecualian, ini dapat menyebabkan kerusakan pada sumber daya sistem, seperti file. Oleh karena itu, pengecualian harus ditangani dengan benar sehingga penghentian program secara tiba-tiba dapat dicegah
Python menggunakan
try:
a=5
b='0'
print[a/b]
except:
print['Some error occurred.']
print["Out of try except blocks."]
4 dan try:
a=5
b='0'
print[a/b]
except:
print['Some error occurred.']
print["Out of try except blocks."]
5 kata kunci untuk menangani pengecualian. Kedua kata kunci tersebut diikuti dengan indentasi blokSintaksis
try : #statements in try block except : #executed when error in try block
Mencoba. blok berisi satu atau lebih pernyataan yang kemungkinan akan menghadapi pengecualian. Jika pernyataan di blok ini dijalankan tanpa pengecualian, kecuali berikutnya. blok dilewati
Jika pengecualian benar-benar terjadi, aliran program ditransfer ke kecuali. memblokir. Pernyataan dalam blok
try:
a=5
b='0'
print[a/b]
except:
print['Some error occurred.']
print["Out of try except blocks."]
6 dimaksudkan untuk menangani penyebab pengecualian dengan tepat. Misalnya, mengembalikan pesan kesalahan yang sesuaiAnda dapat menentukan jenis pengecualian setelah kata kunci
try:
a=5
b='0'
print[a/b]
except:
print['Some error occurred.']
print["Out of try except blocks."]
5. Blok selanjutnya akan dieksekusi hanya jika pengecualian yang ditentukan terjadi. Mungkin ada beberapa klausa kecuali dengan jenis pengecualian yang berbeda dalam satu blok percobaan. Jika jenis pengecualian tidak cocok dengan salah satu kecuali blok, itu akan tetap tidak tertangani dan program akan dihentikanPernyataan-pernyataan lainnya setelah blok exception akan terus dieksekusi, terlepas dari apakah exception ditemukan atau tidak
Contoh berikut akan mengeluarkan pengecualian saat kami mencoba membagi bilangan bulat dengan string
Contoh. mencoba. kecuali blok
Menyalintry:
a=5
b='0'
print[a/b]
except:
print['Some error occurred.']
print["Out of try except blocks."]
Keluaran
Some error occurred.
Out of try except blocks.
_Anda dapat menyebutkan jenis pengecualian tertentu di depan kata kunci kecuali. Blok selanjutnya akan dieksekusi hanya jika pengecualian yang ditentukan terjadi. Mungkin ada beberapa klausa kecuali dengan jenis pengecualian yang berbeda dalam satu blok percobaan. Jika jenis pengecualian tidak cocok dengan salah satu kecuali blok, itu akan tetap tidak tertangani dan program akan dihentikan
Contoh. Tangkap Jenis Kesalahan Tertentu
Menyalintry:
a=5
b='0'
print [a+b]
except TypeError:
print['Unsupported operation']
print ["Out of try except blocks"]
Keluaran
Unsupported operation
Out of try except blocks
_Seperti disebutkan di atas, satu blok percobaan mungkin memiliki beberapa kecuali blok. Contoh berikut menggunakan dua blok kecuali untuk memproses dua jenis pengecualian yang berbeda
Contoh. Banyak kecuali Blok
Menyalintry:
a=5
b=0
print [a/b]
except TypeError:
print['Unsupported operation']
except ZeroDivisionError:
print ['Division by zero not allowed']
print ['Out of try except blocks']
_Keluaran
Division by zero not allowed
Out of try except blocks
Namun, jika variabel b disetel ke '0', TypeError akan ditemui dan diproses oleh blok kecuali yang sesuai
lain dan terakhir
Dalam Python, kata kunci
try:
a=5
b='0'
print[a/b]
except:
print['Some error occurred.']
print["Out of try except blocks."]
8 dan try:
a=5
b='0'
print[a/b]
except:
print['Some error occurred.']
print["Out of try except blocks."]
9 juga dapat digunakan bersama dengan mencoba dan kecuali klausa. Sementara blok kecuali dijalankan jika pengecualian terjadi di dalam blok try, blok else akan diproses jika blok try ditemukan bebas pengecualianSintaksis
try: #statements in try block except: #executed when error in try block else: #executed if try block is error-free finally: #executed irrespective of exception occured or not
Blok terakhir terdiri dari pernyataan yang harus diproses terlepas dari pengecualian yang terjadi di blok try atau tidak. Sebagai konsekuensinya, blok percobaan bebas kesalahan melewati klausa kecuali dan memasuki blok akhirnya sebelum melanjutkan untuk mengeksekusi kode lainnya. Namun, jika ada pengecualian di blok coba, blok kecuali yang sesuai akan diproses, dan pernyataan di blok terakhir akan diproses sebelum melanjutkan ke kode lainnya
Contoh di bawah ini menerima dua angka dari pengguna dan melakukan pembagiannya. Ini menunjukkan penggunaan lain dan akhirnya memblokir
Contoh. coba, kecuali, kalau tidak, akhirnya blokir
Menyalintry:
print['try block']
x=int[input['Enter a number: ']]
y=int[input['Enter another number: ']]
z=x/y
except ZeroDivisionError:
print["except ZeroDivisionError block"]
print["Division by 0 not accepted"]
else:
print["else block"]
print["Division = ", z]
finally:
print["finally block"]
x=0
y=0
print ["Out of try, except, else and finally blocks." ]
Jalankan pertama adalah kasus normal. Blok out of else dan finally ditampilkan karena blok try bebas dari kesalahan
Keluaran
try block
Enter a number: 10
Enter another number: 2
else block
Division = 5.0
finally block
Out of try, except, else and finally blocks.
Run kedua adalah kasus pembagian dengan nol, maka blok exception dan blok finally dieksekusi, tetapi blok else tidak dieksekusi.
Keluaran
try:
a=5
b='0'
print[a/b]
except:
print['Some error occurred.']
print["Out of try except blocks."]
0Dalam kasus ketiga, terjadi pengecualian yang tidak tertangkap. Blok terakhir masih dieksekusi tetapi program berhenti dan tidak mengeksekusi program setelah blok terakhir
Keluaran
try:
a=5
b='0'
print[a/b]
except:
print['Some error occurred.']
print["Out of try except blocks."]
_1Biasanya klausa akhirnya adalah tempat yang ideal untuk membersihkan operasi dalam suatu proses. Misalnya menutup file terlepas dari kesalahan dalam operasi baca/tulis. Ini akan dibahas di bab selanjutnya
Angkat Pengecualian
Python juga menyediakan kata kunci
Some error occurred.
Out of try except blocks.
_0 untuk digunakan dalam konteks penanganan pengecualian. Ini menyebabkan pengecualian dihasilkan secara eksplisit. Kesalahan bawaan dimunculkan secara implisit. Namun, pengecualian bawaan atau khusus dapat dipaksakan selama eksekusiKode berikut menerima nomor dari pengguna. Blok coba memunculkan pengecualian ValueError jika nomornya berada di luar rentang yang diizinkan
Contoh. Angkat Pengecualian
Menyalintry:
a=5
b='0'
print[a/b]
except:
print['Some error occurred.']
print["Out of try except blocks."]
_2Keluaran
try:
a=5
b='0'
print[a/b]
except:
print['Some error occurred.']
print["Out of try except blocks."]
_3Di sini, pengecualian yang dimunculkan adalah tipe
Some error occurred.
Out of try except blocks.
1. Namun, Anda dapat menentukan jenis pengecualian khusus yang akan dimunculkan. Kunjungi dokumen Python untuk mengetahui lebih banyak tentang