php接口异常,api接口异常怎么办
異常:
在程序開發(fā)過程中出現(xiàn)的不正常情況,就是異常。比如除數(shù)是0,參數(shù)為null,調(diào)用參數(shù)的成員變量或者方法,數(shù)組下標(biāo)越界。
異常分為兩大類型:
(1)Exception:程序員可以解決的:空指針,除數(shù)是0,數(shù)組下標(biāo)越界。
(2)Error:程序員無法解決的:如內(nèi)存溢出。
Throwable是這兩種類型的父類
Exception的分類:
按照編譯器是否檢查進(jìn)行分類:非檢查性異常:也稱之為運(yùn)行時異常,即編譯器在檢查語法期間,不做異常檢查。
檢查性異常:也稱之為編譯時異常,此時,編譯器會強(qiáng)制檢查語法中的異常情況。如有異常,在編譯期需要做異常處理。
Exception的結(jié)構(gòu):RuntimeException:
NullPointerException
ArrayIndexOutOfBoundsException
ClassCastException
IllegalArgumentExcetion
NumberFormatException
IOException:
EOFException
FileNotFoundException
異常的處理:
(1)當(dāng)異常出現(xiàn)時,終止程序。
(2)當(dāng)異常出現(xiàn)時,我們使用處理機(jī)制進(jìn)行處理異常。無需終止程序。體驗(yàn)度:盡可能的選擇異常處理機(jī)制。
異常處理機(jī)制:
基本思想:
在可能出現(xiàn)異常的代碼塊區(qū)域,進(jìn)行嘗試檢查,如果出現(xiàn)了異常信息,我們將這些信息封裝成某一異常類型的對象, 然后進(jìn)行捕獲與處理。
相關(guān)推薦:《常見問題》try{
可能出現(xiàn)異常的代碼塊
/*如果有異常,jvm會將異常信息,封裝成對象
將地址信息賦值給catch中的形參
*/
}catch(Exception e){
進(jìn)行處理e
}
多catch語句塊情況:
當(dāng)我們在嘗試捕獲異常對象時,想對多種不同的異常對象分別處理時, 需要使用多個catch語句塊。
說明:當(dāng)在try中出現(xiàn)了異常信息,那么就不會再執(zhí)行try中代碼塊的后續(xù)部分。進(jìn)入相應(yīng)的catch代碼塊中執(zhí)行處理。
多catch語句塊情況下,catch處理的異常種類書寫順序:
先寫子類異常類型,再寫父類異常。
throw:拋出關(guān)鍵字,在本方法中出現(xiàn)的異常,不做try-catch處理。
而是拋給調(diào)用者處理。需要使用throw關(guān)鍵字。
throws:聲明異常關(guān)鍵字,通常用于方法的定義上,用于通知調(diào)用者。(1)當(dāng)throw的異常對象為檢查性異常,方法上必須throws此異常類型。
(2)如果throw的異常對象為非檢查性異常,方法上不必throws此異常類型。
方法重寫時的throws的用法
可行的:(1)可以相同。
(2)可以是部分。
(3)異常的子類型可行,也可以是多個子類型。
不行的:(1)不同的異常類型,也不可以多聲明不同類型的異常類型。
(2)異常的父類型不行。
finally:
是為try-catch提供了統(tǒng)一的出口。不管try與catch語句塊是否發(fā)生了異常,最終都會執(zhí)行finally里的代碼塊 。
通常用于處理一些資源的關(guān)閉等操作:
如:讀取文件時關(guān)閉操作,或者是刪除臨時文件
finally語句塊可選。
當(dāng)語句中有return時,先順序運(yùn)行,若遇上return先將其返回值懸掛,然后運(yùn)行一遍finally中的代碼塊后執(zhí)行return(finally中沒有return時,不會對返回值產(chǎn)生影響)
總結(jié)
以上是生活随笔為你收集整理的php接口异常,api接口异常怎么办的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 粒子群优化算法matlab实现,粒子群优
- 下一篇: Android 编码规范:(六)消除过期