1. 程式人生 > 其它 >app inventor離線版 2021 下載使用教程

app inventor離線版 2021 下載使用教程

簡介

異常是指當程式語法正確,但執行的時候依舊發生的錯誤我們稱之為異常。
異常一般不會被程式處理,都已錯誤資訊的形式表現出來。

異常處理

try/except

try:
    # 程式正常執行的程式碼
    a = os.listdir()
except:
    # 發生異常時執行的程式碼
    print('發生異常') 
發生異常

執行步驟:

  1. 首先執行try和except之間的語句
  2. 沒有發生異常,忽略except子句
  3. 如果發生異常try子句剩餘的部分將被忽略,異常的型別和except後的名稱相符則執行except子句
  4. 如果異常型別和except定義的不匹配則會重新傳遞給try子句,由直譯器丟擲錯誤資訊

注意:

  • 可以定義多個不同型別的異常,最多隻有一個分支被執行
  • 一個except語句也可以同時處理多個異常,需要將這些異常放在一個元組中
  • 當except沒有指定具體的異常型別時,它將被當做萬用字元使用,接收所有異常

try/except...else

try:
    # 正常執行的程式碼
    a = 3
    b = 4
    c = a/b
except:
    # 發生異常時執行的程式碼
    print('發生異常')
else:
    # 沒有發生異常時執行的程式碼
    print('{0}/{1}={2}'.format(a,b,c))
3/4=0.75
  • else子句在try子句沒有發生異常時執行
  • 使用 else 子句比把所有的語句都放在 try 子句裡面要好,不僅僅處理那些直接發生在 try 子句中的異常,而且還能處理子句中呼叫的函式(甚至間接呼叫的函式)裡丟擲的異常。
  • else子句方便定位異常

try/finally

try:
    # 正常執行的程式碼
    a = 3
    b = 4
    c = a/b
    d = 10
    e = d/0
except:
    # 發生異常時執行的程式碼
    print('發生異常')
else:
    # 沒有發生異常時執行的程式碼
    print('{0}/{1}={2}'.format(a,b,c))
finally:
    print('d*c={0}'.format(c*d))
發生異常
d*c=7.5
  • try-finally 語句無論是否發生異常都將執行最後的程式碼。

丟擲異常

Python 使用 raise 語句丟擲一個指定的異常。

raise語法格式

raise [Exception [, args [, traceback]]]

a = 0
if a == 0:
    raise Exception('b/a中除數a為0所以丟擲異常')
---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-4-f517360799a9> in <module>
      1 a = 0
      2 if a == 0:
----> 3     raise Exception('b/a中除數a為0所以丟擲異常')

Exception: b/a中除數a為0所以丟擲異常

相關閱讀

斷言(assert)