天天看點

并不是所有的異常都可以捕獲到之 SyntaxError: invalid syntax

有些文法錯誤是捕獲不到異常的

try:
#     num = int(input('請輸入數字:'))
    num = 3
    if num % 2 == 0 and num % 3 == 0:
        print('2,3的倍數')
    # 待捕獲處
    elif num %2 = 0:
        print('2的倍數')
    elif num % 3 == 0:
        print('3的倍數')
    else:
        print('其他')
except SyntaxError as e:
    print("錯誤資訊:", e)      

結果:

并不是所有的異常都可以捕獲到之 SyntaxError: invalid syntax

這樣是無法捕獲到第7行中的那個指派符号的, 因為這是在代碼運作之前就存在的異常, 是不能通過普通的代碼來捕獲的

try:
#     num = int(input('請輸入數字:'))
    num = 3
    if num % 2 == 0 and num % 3 == 0:
        print('2,3的倍數')
# 待捕獲處
    elif eval("num %2 = 0"):
        print('2的倍數')
    elif num % 3 == 0:
        print('3的倍數')
    else:
        print('其他')
except SyntaxError as e:
    print("錯誤資訊:", e)