2017-02-13 100 views
0

嘗試運行以下代碼。Python基本錯誤處理

try: 
    num1 = 7 
    num2 = "Bob" 
    print (num1/num2) 
except: 
    print("oops") 
    raise 

獲取一個例外,但沒有它首先打印「oops」,然後是例外。

我是新來的 - 我錯過了什麼?

+2

你能提供異常你得到的堆棧跟蹤? – Neelik

+0

真的很高興看到一個完整的打印輸出。我的ESP不是它曾經的 –

+0

erorr是不是很明顯?試圖做一個int和一個字符串的數學? – serk

回答

-1

更改您的代碼,包括實際的錯誤:

try: 
    num1 = 7 
    num2 = "Bob" 
    print (num1/num2) 
except Exception as e: 
    print ("oops") 
    print e.message 

輸出:

oops 
unsupported operand type(s) for /: 'int' and 'str' 
1

這與你有養在最後的事實做。在你已經抓到一個之後,這會引發例外。刪除它,它會按你想要的那樣工作。

固定碼:

try: 
    num1 = 7 
    num2 = "Bob" 
    print(num1/num2) 
except: 
    print("oops") 
    #raise 
+2

這並不能解釋爲什麼OP沒有看到「oops」打印。 – interjay

+0

我錯過了,但我確實看到它打印,所以我沒有合理的解釋。 – Foobar

+0

可能的解釋是OP沒有發佈真實/完整的代碼,應該關閉問題。 – interjay