raise 觸發異常

  1. 使用以下 raise 語法,自行觸發異常。
    1. Exception:異常的類型,例如:NameError。
    2. args:自行提供的異常參數。
    3. trackback:如果存在,跟踪異常對象。
    raise [Exception [, args [, traceback]]]
    
  2. 範例:一個異常可以是一個字串、類別(class),python 內建的異常大多是類別。觸發異常後,後面的程式碼就不會再執行。
    def functionName( level ):
        if level < 1:
            raise Exception("Invalid level!", level)
    
  3. 實例:定義一個異常函式 myerr,傳入的參數 level 小於 1,就會觸發異常 Exception,參數是 "Invalid level!"。
    pyuser@deyu:~/zzz$ vi try6.py 
    pyuser@deyu:~/zzz$ cat try6.py 
    1 Invalid level!
    pyuser@ip123:~/10927001$ cat try6.py
    #!/usr/bin/python
    def myerr( level ):
        if level < 1:
            raise Exception("Invalid level!")
    
    try:
        myerr(0)
    except Exception as err:
        print(1,err)
    else:
        print(2)
    
  4. 執行結果:呼叫 myerr 時傳入 0,觸發異常,輸出自訂的異常 "Invalid level!" 。
    pyuser@deyu:~/zzz$ ./try6.py 
    1 Invalid level!