Android 捕獲運(yùn)行時(shí)異常詳解
創(chuàng)新互聯(lián)是一家成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),提供網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)站制作,建網(wǎng)站,按需求定制網(wǎng)站,網(wǎng)站開發(fā)公司,成立于2013年是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價(jià)值為核心業(yè)務(wù),全程參與項(xiàng)目的網(wǎng)站策劃設(shè)計(jì)制作,前端開發(fā),后臺(tái)程序制作以及后期項(xiàng)目運(yùn)營并提出專業(yè)建議和思路。
Android 異常分為兩類:CheckedException 和 UnCheckedException
CheckException:在編譯代碼時(shí)就需要進(jìn)行try()catch捕獲的。
UnCheckException:所有的運(yùn)行時(shí)異常,RuntimeException類和他的子類,都是在APP運(yùn)行的過程中的發(fā)生的。即:APP在運(yùn)行的過程中崩潰了,這種異常我們就成為運(yùn)行時(shí)異常(比如空指針),當(dāng)APP崩潰的時(shí)候,給用戶的體驗(yàn)很不好,所以我們應(yīng)該捕獲這個(gè)異常進(jìn)行處理(彈個(gè)界面啦),然后更好的方案是獲取到這個(gè)異常后,把他傳回服務(wù)器,這樣我們在開發(fā)的時(shí)候就知道APP哪里的代碼有問題了
說了半天到底怎么捕獲呢?
安卓提供了一個(gè)接口:UncaughtExceptionHandler 這個(gè)接口是Thread類的內(nèi)部接口,有相應(yīng)的方法:
Thread.getDefaultUncaughtExceptionHandler() Thread.setDefaultUncaughtExceptionHandler()
通常的方案就是在項(xiàng)目的Application中,調(diào)用Thread.setDefaultUncaughtExceptionHandler(),注意這個(gè)方法需要一個(gè)實(shí)現(xiàn)了UnCaughtExceptionHandler接口的對象,我們可以自定義一個(gè)類實(shí)現(xiàn)這個(gè)接口,然后在onUncaughtException()方法中就可以拿到導(dǎo)致APP崩潰的異常了。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!