Ini agak menarik, mari jalankan beberapa kod dahulu
1. Kod ini bermakna anda tidak perlu risau tentang berapa banyak lapisan percubaan. Sebenarnya, anda hanya perlu memikirkan sebab pengecualian tidak diletakkan di bawah kecuali
2. Kod ini bermakna jika akhirnya mempunyai penyata pulangan, tiada pengecualian akan dilemparkan
def bar():
a = 10
try:
print 1
raise
except:
print 2
raise
finally:
print 3
# return a
bar()
# 打印(抛出了异常):
# 2
# Traceback (most recent call last):
# 3
# File "/Users/xuxin/workplace/DailyScript/segmentfault/file_list_to_dict.py", line 23, in <module>
# bar()
# File "/Users/xuxin/workplace/DailyScript/segmentfault/file_list_to_dict.py", line 18, in bar
# raise ValueError()
# ValueError
3 Saya menyemaknya dan melihat artikel ini untuk memahami Python akhirnya
Nampaknya selepas f() melontar pengecualian, ia melaksanakan pengembalian ke dalam kecuali, tetapi ia tidak kembali kepada pemanggil, tetapi "berterusan" dalam melaksanakan kod itu akhirnya. Pada ketika ini, saya akhirnya memahami maksud sebenar akhirnya, iaitu walaupun pemulangan telah dibuat, kod dalam akhirnya masih mesti dilaksanakan.
Kami juga boleh memahami di sini bahawa jika terdapat pernyataan yang memerlukan kaedah keluar dalam percubaan, ia akan cuba untuk melaksanakan akhirnya Jika akhirnya mempunyai kaedah kembali, ia akan kembali serta-merta dan pernyataan keluar sebelumnya tidak akan dilaksanakan.
Pada masa ini, kita boleh melihat rentetan kod ini
def bar():
a = 10
try:
print 1
raise
finally:
print 3
return a
bar()
# 打印(没有抛出异常):
# 3
4. Pada masa ini, adakah anda lebih jelas tentang akhirnya~
Belajar sekarang dan jual sekarang Jika ada sebarang kesilapan, sila tunjuk pembetulan~
Ini agak menarik, mari jalankan beberapa kod dahulu
1. Kod ini bermakna anda tidak perlu risau tentang berapa banyak lapisan percubaan. Sebenarnya, anda hanya perlu memikirkan sebab pengecualian tidak diletakkan di bawah kecuali
2. Kod ini bermakna jika akhirnya mempunyai penyata pulangan, tiada pengecualian akan dilemparkan
3 Saya menyemaknya dan melihat artikel ini untuk memahami Python akhirnyaPada masa ini, kita boleh melihat rentetan kod ini
4. Pada masa ini, adakah anda lebih jelas tentang akhirnya~Jika pengecualian dilemparkan pada akhirnya, bukankah pernyataan kecuali anda adalah sia-sia?