Rumah > Soal Jawab > teks badan
经常看到有些模块,任何异常都不会崩溃,然后还是继续运行代码,自己试过在程序最外面加上try ----catch----但是好像并不能把所有错误信息都吞了,好像只对块内代码起作用,要是跳到另外的方法仍然会抛出异常,那种吞异常的是怎么写的呀?我现在有个需求要求代码一直跑。即使有异常也不能退出。。。请教各位大神指点
PHP中文网2017-04-18 10:35:44
Ini memerlukan merangkum rangka kerja, namun sebarang ralat yang anda huraikan terus berjalan. Keperluan ini ialah anda menganggap bahawa walaupun terdapat ralat, ia tidak akan menjejaskan hasil program yang dijalankan Ini bermakna anda boleh mengawal skop ralat itu sendiri Jika kebarangkalian ralat tersebut adalah tinggi tidak membawa maut, anda berharap untuk lulus dalam utama Benang menangkap dan sebarang pengecualian akhirnya dibuang melalui entri program. Oleh itu, anda harus melakukan tangkapan dalam blok permulaan program yang dijalankan.
try:
main()
except:
pass
Kaedah ini juga akan keluar apabila pengecualian berlaku, jika anda ingin terus mencuba. Anda boleh menambah gelung
while time_out < max_time_out:
try:
main()
except:
pass
timeout+=100
Tetapi kaedah ini memerlukan anda mengetahui dengan baik bahawa program akan berfungsi seperti biasa selepas beberapa percubaan, jika tidak, ia masih akan keluar.
Akhir sekali, apa yang saya ingin katakan ialah apabila program itu digantung kerana pengecualian, ia mengingatkan anda bahawa anda sepatutnya membetulkannya dan bukannya mengabaikannya. Jika anda mengabaikannya dan terus berlari tetapi mendapat keputusan yang salah, anda akan menyesal~
怪我咯2017-04-18 10:35:44
sepatutnya
try....except
Selain itu, anda menambah cuba..kecuali di lapisan paling luar Apabila program membuat ralat, ia hanya akan menangkap ralat di lapisan paling luar dan kemudian keluar saya mempunyai cara, tetapi selepas ralat, anda boleh hanya bermula semula (sebaik-baiknya Cari apa yang salah)
import sys
def main():
print(1)
int('s')
def main1():
print(2)
while True:
try:
main()
except KeyboardInterrupt:
sys.exit()
except Exception:
pass
if __name__ == '__main__':
main1()