try - except 語句
try
: 檢測範圍
except exception[
as reason]
: 出現異常後的處理**
try 語句按照如下方式工作:首先,執行try子句(在關鍵字try和關鍵字except之間的語句)如果沒有異常發生,忽略except子句,try子句執行後結束。如果在執行try子句的過程中發生了異常,那麼try子句餘下的部分將被忽略。如果異常的型別和except之後的名稱相符,那麼對應的except子句將被執行。最後執行try語句之後的**。如果乙個異常沒有與任何的except匹配,那麼這個異常將會傳遞給上層的try中。
try
: f =
open
('test.txt'
)print
(f.read())
f.close(
)except oserror:
print
('開啟檔案出錯'
)
try
: f =
open
('test.txt'
)print
(f.read())
f.close(
)except oserror as error:
print
('開啟檔案出錯\n原因是:'
+str
(error)
)
乙個try語句可能包含多個except子句,分別來處理不同的特定的異常。最多只有乙個分支會被執行。
try
:int
("abc"
) s =1+
'1' f =
open
('test.txt'
)print
(f.read())
f.close(
)except oserror as error:
print
('開啟檔案出錯\n原因是:'
+str
(error)
)except typeerror as error:
print
('型別出錯\n原因是:'
+str
(error)
)except valueerror as error:
print
('數值出錯\n原因是:'
+str
(error)
)
乙個 except 子句可以同時處理多個異常,這些異常將被放在乙個括號裡成為乙個元組。
try
:int
("abc"
) s =1+
'1' f =
open
('test.txt'
)print
(f.read())
f.close(
)except
(oserror, typeerror, valueerror)
as error:
print
('出錯了!\n原因是:'
+str
(error)
)
try - except - finally 語句
try
: 檢測範圍
except exception[
as reason]
: 出現異常後的處理**
finally
: 無論如何都會被執行的**
不管try子句裡面有沒有發生異常,finally子句都會執行。如果乙個異常在try子句裡被丟擲,而又沒有任何的except把它截住,那麼這個異常會在finally子句執行後被丟擲。
def
divide
(x, y)
:try
: result = x / y
print
("result is"
, result)
except zerodivisionerror:
print
("division by zero!"
)finally
:print
("executing finally clause"
)divide(2,
1)# result is 2.0
# executing finally clause
divide(2,
0)# division by zero!
# executing finally clause
divide(
"2",
"1")
# executing finally clause
# typeerror: unsupported operand type(s) for /: 'str' and 'str'
raise語句python 使用raise語句丟擲乙個指定的異常。
try
:raise nameerror(
'hithere'
)except nameerror:
print
('an exception flew by!'
)# an exception flew by!
參考文獻 PYTHON學習第N天
字典 序列是以連續的整數為索引,與此不同的是,字典以 關鍵字 為索引,關鍵字可以是任意不可變型別,通常用字串或數值。字典是 python 唯一的乙個 對映型別,字串 元組 列表屬於序列型別。那麼如何快速判斷乙個資料型別 x 是不是可變型別的呢?兩種方法 麻煩方法 用 id x 函式,對 x 進行某種...
python第25天 學習python第25天
今天是在尚學堂學習python第25天今天學習了使用者管理,許可權管理 使用者管理 1.使用者的登入與退出 語法 mysql h hostname p port u username p dbname e h hostname 指定要連線mysql的主機名或者ip hostname就是具體的主機名或...
python學習第7天
崔鑫陽 2019.225 課堂檢測題 輸入兩個數 求出他們之間所有的素數 把這些素數放在 乙個列表裡 求這個列表裡素數的和 以及 最大值 和最小值 寫到乙個 裡 num 1 int input 輸入第乙個數 num 2 int input 輸入第二個數 if num 1 num 2 turn num...