2K+ 次瀏覽
如果我們定義一個沒有異常的 except 子句,它可以處理所有型別的異常。但是,這既不是好的編碼習慣,也不推薦這樣做。示例:try: print 'foo'+'qux'+ 7 except: print' 出現錯誤' 輸出:您將得到輸出“出現錯誤”。這種型別的 Python try-except 塊可以處理所有型別的異常,但這對於程式設計師查詢發生哪種型別的異常並沒有幫助。
522 次瀏覽
這可以透過以下程式碼實現:try: x, y =7, 0 z = x/y except: pass 或 try: x, y =7, 0 z = x/y except Exception: pass 這些程式碼繞過 try 語句中的異常並忽略 except 子句,並且不會引發任何異常。上述程式碼的區別在於,第一個程式碼還會捕獲 KeyboardInterrupt、SystemExit 等,這些異常直接派生自 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("unsupported operand type(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 關鍵字之後。如果測試透過或表示式的計算結果為真,則不會發生任何事情。但是,如果測試失敗或表示式的計算結果為假,則會引發 AssertionError,並列印或計算訊息。Assert 語句用於捕獲/測試使用者定義的約束。它用於除錯程式碼,並插入到…… 閱讀更多