今天,咱們** 2 個關於異常處理的實用功能。
強制輸入整數,否則程式不終止。要想實現這個功能,可使用 try 和 except :
in [5]: while true:
...: try:
...: a = int(input('請輸入乙個整數: '))
...: break
...: except valueerror:
...: print('input value is not a valid number')
...:
請輸入乙個整數: e
input value is not a valid number
請輸入乙個整數: f
input value is not a valid number
請輸入乙個整數: 1
一旦輸入不是整數,就會觸發valueerror
異常,再次提示輸入乙個整數。直到輸入乙個整數,才會 break
這是 try 和 except 的乙個典型應用。
try 和 except 組對比較容易理解,觸發異常執行 except 裡的**,否則不執行。但是加上乙個 else 實現怎樣的作用呢?
首先看下面的例子:
in [9]: while true:
...: try:
...: a = int(input('請輸入乙個整數: '))
...: except valueerror:
...: print('input value is not a valid number')
...: else:
...: if a % 2 == 0:
...: print('輸入的 %d 是偶數' %(a,))
...: else:
...: print('輸入的 %d 是奇數' %(a,))
...: break
測試:
請輸入乙個整數: t
input value is not a valid number
請輸入乙個整數: 5
輸入的 5 是奇數
try 保護的**正常通過後,else 才執行。
有的朋友會問,為什麼不把 else 這塊**放到 try 裡面?這還是有一定區別的。放到 else 中意味著這塊**不必受保護。
閱讀更多:
python 10 個極簡用法,第五期
python 10 個極簡用法,第四期
以上就是 2 個關於異常處理的實用功能。碼字不易,點個在看。
2個Excel異常處理
今天在做excel匯出時發生的兩個異常 hresult 0x800a03ec 引發這個異常的原因很多,我遇到的問題是發現在 區域命名錯誤,導致microsoft.office.interop.excel.range namerange oworksheet.get range cellname,ty...
異常 try catch的方式處理異常2
package cn.itcast 01 a 乙個異常,前面已經講過了 b 二個異常的處理 a 每乙個寫乙個try.catch b 寫乙個try,多個catch trycatch 異常類名 變數名 catch 異常類名 變數名 注意事項 1 能明確的盡量明確,不要用大的來處理。2 平級關係的異常誰前...
關於異常處理的筆記總結
一 異常處理 1.如果由於return continue break 等語句而使控制轉移到try 塊之外,在控制轉移到try 塊外面之前,仍然執行finally 塊中的內容。2.但在try 塊或catch 塊中如果執行了system.exit 方法,則終止虛擬機器,此時不會再執行finally 塊。...