python基礎語法 10錯誤與異常

2022-10-11 01:57:08 字數 1797 閱讀 1578

python有兩種錯誤很容易辨認:語法錯誤和異常。

語法錯誤

python 的語法錯誤或者稱之為解析錯,是初學者經常碰到的,如下例項

異常即便python程式的語法是正確的,在執行它的時候,也有可能發生錯誤。執行期檢測到的錯誤被稱為異常。

大多數的異常都不會被程式處理,都以錯誤資訊的形式展現在這裡:

異常處理

以下例子中,讓使用者輸入乙個合法的整數,但是允許使用者中斷這個程式(使用 control-c 或者作業系統提供的方法)。使用者中斷的資訊會引發乙個 keyboardinterrupt 異常。

try語句按照如下方式工作;

乙個 try 語句可能包含多個except子句,分別來處理不同的特定的異常。最多只有乙個分支會被執行。

乙個except子句可以同時處理多個異常,這些異常將被放在乙個括號裡成為乙個元組,例如:

try except 語句還有乙個可選的else子句,如果使用這個子句,那麼必須放在所有的except子句之後。這個子句將在try子句沒有發生任何異常的時候執行

優點:使用 else 子句比把所有的語句都放在 try 子句裡面要好,這樣可以避免一些意想不到的、而except又沒有捕獲的異常。

異常處理並不僅僅處理那些直接發生在try子句中的異常,而且還能處理子句中呼叫的函式(甚至間接呼叫的函式)裡丟擲的異常。

丟擲異常

python 使用 raise 語句丟擲乙個指定的異常。

raise 唯一的乙個引數指定了要被丟擲的異常。它必須是乙個異常的例項或者是異常的類(也就是 exception 的子類)。

使用者自定義異常

你可以通過建立乙個新的exception類來擁有自己的異常。異常應該繼承自 exception 類,或者直接繼承,或者間接繼承,

當建立乙個模組有可能丟擲多種不同的異常時,一種通常的做法是為這個包建立乙個基礎異常類,然後基於這個基礎類為不同的錯誤情況建立不同的子類

定義清理行為

try 語句還有另外乙個可選的子句,它定義了無論在任何情況下都會執行的清理行為。

以上例子不管 try 子句裡面有沒有發生異常,finally 子句都會執行。

如果乙個異常在 try 子句裡(或者在 except 和 else 子句裡)被丟擲,而又沒有任何的 except 把它截住,那麼這個異常會在 finally 子句執行後再次被丟擲。

預定義的清理行為

一些物件定義了標準的清理行為,無論系統是否成功的使用了它,一旦不需要它了,那麼這個標準的清理行為就會執行。

python基礎 語法錯誤和異常

try 可能出現異常的 except 如果有異常執行的 finally 無論是否存在異常都會被執行的 注意 異常型別的順序要注意,最大的exception放在最後。err表示的是錯誤的原因。ef func try n1 int input 輸入第乙個數字 n2 int input 輸入第二個數字 s...

基礎語法與變數 Python

1 注釋 單行注釋 這是多行注釋 這也是多行注釋 2 語句 一條語句佔一行,一行結束不需要寫分號 如果一行需要顯示多行語句語句之間必須用分號隔開 print 123 print 大撒大撒 print 阿斯頓 3 行與縮排num 5555555 55555 855555 2222222 2255252...

Prolog 1 0 基礎語法與概念

概述 prolog的語法與其它常用語言 如c,j a等 不同,它更接近於自然語言。例項 當我想表示 mia是以女人 這個事實 之後會提到事實這個概念 的時候,我可以這麼寫 woman mia 這個格式代表這乙個事實,a b b是a 事實上命名沒什麼要求,只要你自己記得就好 當我想要知道某個問題的答案...