[英]Try block fall-through?
也許這是一個基本問題,我不明白為什么下面的代碼在所有情況下都執行except
塊:
import pandas as pd
import sys
import os
try:
if sys.argv[1] == '-d':
for i in range(1,len(sys.argv[:])):
arg = sys.argv[i]
print(i,arg)
sys.exit(0)
except:
print ("Syntax: python mergeTXT2XL.py working-dir output-name txt-file1 txt-file2 ...")
sys.exit(-1)
當我用 args 運行它時:
python mergeTxt2XL.py -d 1 2 3 4
我明白了:
1 -d
2 1
3 2
4 3
5 4
Syntax: python mergeTXT2XL.py working-dir output-name txt-file1 txt-file2 ...
不應打印語法行。 它看起來像直通/跌落。
sys.exit
通過引發SystemExit
異常在內部工作。 您的except
塊會捕獲它。 這就是為什么你總是應該except Exception
,當你想要一個非特異性包羅萬象的,因為在異常層次結構Exception
不包含SystemException
中您通常不想抓幾個人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.