異常捕捉:
try:
***xx1
raise exception(「***xx2」)
except (exception1,exception2,……):
***x3
else:
***xx4
finally:
******x5
1.raise 語句可以自定義報錯資訊,如上。
2. raise後的語句是不會被執行了,因為已經丟擲異常,控制流將會跳到異常捕捉模組。
3. except 語句可以乙個except後帶多個異常,也可以用多個語句捕捉多個異常,分別做不同處理。
4. except語句捕捉的異常如果沒有發生,那麼except裡的語句塊是不被執行的。而是執行else裡的語句
5. 在上面語句中try/except/else/finally所出現的順序必須是try–>except x–>except–>else–>finally,即所有的except必須在else和finally之前,else(如果有的話)必須在finally之前,而except x必須在except之前。否則會出現語法錯誤。
6.else和finally都是可選的.
7.在上面的完整語句中,else語句的存在必須以except x或者except語句為前提,如果在沒有except語句的try block中使用else語句會引發語法錯誤。
異常引數輸出:
try:
testraise()
except precondition***ception as e: #python3的寫法,必須用as
print (e)
自定義異常,只需自定義異常類繼承父類exception。在自定義異常類中,重寫父類init方法。
class
databaseexception
(exception):
def__init__
(self,err='資料庫錯誤'):
exception.__init__(self,err)
class
precondition***ception
(databaseexception):
def__init__
(self,err='preconditionserr'):
databaseexception.__init__(self,err)
deftestraise
():raise precondition***ception()
try:
testraise()
except precondition***ception as e:
print (e)
注意:preconditon***ception又是databaseexception的子類。
所以如果,raise preconditionexception的話,用兩個異常類都可以捕捉。
但是, 如果是raise databaseexception, 用preconditon***ception是捕捉不到的。
異常 自定義異常
package test 01 練習 計算成績的平均值 異常的情況 成績為負數 me 總結 練習寫好乙個程式,思路最重要要做到心中有數,當計算成績的平均值,定義乙個方法,最後這個方法返回平均數即可 關鍵在於 方法的引數是啥?返回值型別是啥?當然是乙個陣列 可變引數組int grades int型別 ...
異常 自定義異常
自己定義的異常類,也就是api中的標準異常類的直接或間接的子類 用自定義異常標記業務邏輯的異常,避免與標準異常混淆 1 建立自定義異常類 2 在方法中通過throw關鍵字拋出自定義異常 public class customexception extends exception 3 呼叫throws...
異常 自定義異常
throwable是所有異常的根。error是錯誤資訊,exception是異常資訊。error 是程式中無法處理的錯誤,表示執行應用程式 現了嚴重的錯誤。此類錯誤一般表示 執行時jvm出現問題。exception 程式本身可以捕獲並且可以處理的異常。捕獲異常 try,catch,finally 丟...