關於異常處理,2 個很贊的功能

2021-10-07 04:56:40 字數 1414 閱讀 2474

今天,咱們** 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 塊。...