簡體   English   中英

嘗試阻止失敗?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM