2K+ 次檢視
如果我們定義沒有異常的 except 子句,它可以處理所有型別的異常。但是,這既不是好的編碼習慣,也不推薦。示例try: print 'foo'+'qux'+ 7 except: print' 存在錯誤'輸出您將獲得輸出存在錯誤這種型別的 Python try-except 塊可以處理所有型別的異常,但對於程式設計師來說,它無助於找到發生哪種型別的異常。
522 次檢視
這可以透過以下程式碼來完成try: x, y =7, 0 z = x/y except: passORtry: x, y =7, 0 z = x/y except Exception: pass這些程式碼繞過 try 語句中的異常並忽略 except 子句,並且不引發任何異常。上述程式碼的區別在於,第一個程式碼還將捕獲 KeyboardInterrupt、SystemExit 等,這些程式碼直接派生自 exceptions.BaseException,而不是 exceptions.Exception。眾所周知,Python 中會記住最後丟擲的異常,參與異常丟擲語句的一些物件在下一個異常之前保持活動狀態。我們可能想要做... 閱讀更多
3K+ 次檢視
可以使用相同的 except 子句定義多個異常。這意味著如果 Python 直譯器找到匹配的異常,則它將執行 except 子句下編寫的程式碼。一般來說,多個異常的語法如下Except(Exception1, Exception2, …ExceptionN) as e:當我們以這種方式定義 except 子句時,我們期望相同的程式碼丟擲不同的異常。此外,我們希望在每種情況下都採取行動。示例程式碼import sys try: d = 8 d = d + '5' except(TypeError, SyntaxError)as e: print sys.exc_info()我們獲得如下所示的輸出(, TypeError("不支援的運算元型別(s) for +: 'int' and 'str'", ), ... 閱讀更多
1K+ 次檢視
這裡我們將變數傳遞給給定的異常。我們正在定義一個自定義異常 ExampleException,它是基類 Exception 的子類,並且還定義了 __init__ 方法。我們使用 try-except 塊來引發異常並將變數傳遞給異常,如下所示。示例class ExampleException(Exception): def __init__(self, foo): self.foo = foo try: raise ExampleException("Bar!") except ExampleException as e: print e.foo 輸出"C:/Users/TutorialsPoint1/~bar.py" Bar!
235 次檢視
在給定的程式碼中,建立了一個自定義異常 FooException,它是超類 Exception 的子類。我們將字串物件傳遞給自定義異常,如下所示示例#foobar.py class FooException(Exception): def __init__(self, text, *args): super ( FooException, self ).__init__ ( text, *args ) self.text = text try: bar = input("輸入一個字串:") if not isinstance(bar, basestring): raise FooException(bar) except FooException as r: print '存在錯誤' else: print type(bar) print bar如果此指令碼在終端中按如下方式執行,我們將得到$ python foobar.py如果我們輸入字串,我們將得到以下內容輸出"C:/Users/TutorialsPoint1/~foobar.py" 輸入 ... 閱讀更多
557 次檢視
當 Python 無法理解您在說什麼時,就會發生語法錯誤。當 Python 理解您在說什麼,但在遵循您的指令時遇到麻煩時,就會發生執行時錯誤。這稱為執行時錯誤,因為它發生在程式開始執行之後。程式或程式碼在語法上可能是正確的,並且可能不會丟擲任何語法錯誤。此程式碼在開始執行後仍可能顯示錯誤。給定的程式碼可以按如下方式更正a = input('輸入一個數字:') b = input('輸入一個數字:') c = a*b print c我們獲得的輸出如下所示"C:/Users/TutorialsPoint1/~.py" 輸入一個數字:7 輸入 ... 閱讀更多
352 次檢視
我們如下捕獲一個 except 塊中的多個異常except 子句可以將多個異常命名為帶括號的元組,例如try: raise_certain_errors(): except (CertainError1, CertainError2, …) as e: handle_error()用逗號分隔異常和變數在 Python 2.6 和 2.7 中仍然有效,但現在已棄用,在 Python 3 中不起作用;現在我們應該使用“as”。由於逗號用於將錯誤物件分配給名稱,因此括號是必需的。“as”關鍵字用於賦值。我們可以為錯誤物件使用任何名稱,例如“error”、“e”或“err”給定的程式碼可以... 閱讀更多
405 次檢視
子字串是字串中連續的字元序列。換句話說,它是出現在較大部分文字中的較小文字片段。例如,在字串“lorem ipsum”中,子字串“lorem”出現在較大的字串中。類似地,子字串“em i”也出現在較大的字串“lorem ipsum”中。子字串操作在程式設計中很常見,可用於各種任務,例如在文字中搜索特定單詞、提取文字部分或用其他單詞替換文字的某些部分。檢查子字串是否... 閱讀更多
808 次檢視
當找不到值作為字典的鍵時,會引發 KeyError。給定的程式碼被重寫如下,以捕獲異常並找到其型別。示例import sys try: s = {'a':5, 'b':7}['c'] except: print (sys.exc_info())輸出(, KeyError('c',), )
234 次檢視
assert 語句具有以下語法。assert , 上述程式碼讀取為:如果評估為 False,則會引發異常並輸出。如果我們想測試某個程式碼塊或表示式,我們將其放在 assert 關鍵字之後。如果測試透過或表示式計算結果為 true,則不會發生任何事情。但是,如果測試失敗或表示式計算結果為 false,則會引發 AssertionError 並列印或評估訊息。Assert 語句用於捕獲/測試使用者定義的約束。它用於除錯程式碼,並插入到... 閱讀更多