[發(fā)明專(zhuān)利]一種異常捕獲方法、裝置以及終端有效
| 申請(qǐng)?zhí)枺?/td> | 201910361565.5 | 申請(qǐng)日: | 2019-04-30 |
| 公開(kāi)(公告)號(hào): | CN110175101B | 公開(kāi)(公告)日: | 2023-05-26 |
| 發(fā)明(設(shè)計(jì))人: | 付強(qiáng);王慧;高學(xué)智 | 申請(qǐng)(專(zhuān)利權(quán))人: | 北京百度網(wǎng)訊科技有限公司 |
| 主分類(lèi)號(hào): | G06F11/30 | 分類(lèi)號(hào): | G06F11/30 |
| 代理公司: | 北京英賽嘉華知識(shí)產(chǎn)權(quán)代理有限責(zé)任公司 11204 | 代理人: | 王達(dá)佐;馬曉亞 |
| 地址: | 100085 北京市*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 異常 捕獲 方法 裝置 以及 終端 | ||
本發(fā)明實(shí)施例提出一種異常捕獲方法、裝置和終端,所述方法包括:創(chuàng)建攔截異常的應(yīng)用程序初始化入口;在攔截異常的應(yīng)用程序初始化入口中,創(chuàng)建線程異常的捕獲機(jī)制;當(dāng)發(fā)生線程異常時(shí),利用線程異常的捕獲機(jī)制進(jìn)行異常捕獲,使應(yīng)用程序正常運(yùn)行。利用線程異常的捕獲機(jī)制進(jìn)行異常捕獲,應(yīng)用程序不會(huì)崩潰退出,提升了用戶(hù)在使用應(yīng)用程序的體驗(yàn)。同時(shí),保證了用戶(hù)的數(shù)據(jù)不會(huì)損失,不影響用戶(hù)操作應(yīng)用程序。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種異常捕獲方法、裝置以及終端。
背景技術(shù)
用戶(hù)在使用手機(jī)等移動(dòng)終端的應(yīng)用程序時(shí),發(fā)生了沒(méi)有被程序捕獲的運(yùn)行時(shí)異常,導(dǎo)致應(yīng)用程序崩潰,影響用戶(hù)操作數(shù)據(jù)。例如,常見(jiàn)的空指針異常和指針越界異常,其中,空指針異常是指調(diào)用一個(gè)為空的對(duì)象的方法,指針越界異常是指獲取超過(guò)一個(gè)長(zhǎng)度為n的數(shù)組的第n+1條數(shù)據(jù)時(shí)發(fā)生的越界異常。
在某個(gè)應(yīng)用程序捕獲運(yùn)行時(shí)異常,目前普遍采用如下兩種方案來(lái)解決:第一,在業(yè)務(wù)代碼使用異常捕獲機(jī)制(try/catch機(jī)制),能夠在代碼發(fā)生異常時(shí),進(jìn)行捕獲,但是這對(duì)程序員的要求非常高,要對(duì)所有可能會(huì)發(fā)生運(yùn)行時(shí)異常的代碼塊都增加try/catch機(jī)制,如果未加try/catch的代碼塊發(fā)生了運(yùn)行時(shí)異常,會(huì)造成系統(tǒng)崩潰,應(yīng)用程序提示應(yīng)用停止運(yùn)行并退出。第二,在應(yīng)用程序初始化啟動(dòng)時(shí),全局設(shè)置捕獲全局異常程序(Thread?UncaughtException?Handler),全局獲取異常事件,然而,只能攔截子線程的異常,無(wú)法攔截主線程發(fā)生的異常。如果是主線程發(fā)生的異常,應(yīng)用程序同樣會(huì)直接崩潰退出,并且發(fā)生未捕獲的異常時(shí)數(shù)據(jù)也不會(huì)被保留,給用戶(hù)造成了非常不好的體驗(yàn)。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種異常捕獲方法、裝置以及終端,以解決現(xiàn)有技術(shù)中的一個(gè)或多個(gè)技術(shù)問(wèn)題。
第一方面,本發(fā)明實(shí)施例提供了一種異常捕獲方法,包括:
創(chuàng)建攔截異常的應(yīng)用程序初始化入口;
在所述攔截異常的應(yīng)用程序初始化入口中,創(chuàng)建線程異常的捕獲機(jī)制;
當(dāng)發(fā)生線程異常時(shí),利用所述線程異常的捕獲機(jī)制進(jìn)行異常捕獲,使應(yīng)用程序正常運(yùn)行。
在一種實(shí)施方式中,創(chuàng)建線程異常的捕獲機(jī)制,包括:
創(chuàng)建應(yīng)用程序線程異常的捕獲機(jī)制,包括:
全局設(shè)置系統(tǒng)默認(rèn)的捕獲全局異常程序替換成自定義的異常處理程序;
當(dāng)所述捕獲全局異常程序攔截到系統(tǒng)回調(diào)的異常對(duì)象時(shí),判斷所述系統(tǒng)回調(diào)的異常對(duì)象是主線程異常還是子線程異常;
若所述系統(tǒng)回調(diào)的異常對(duì)象是所述主線程異常,則在消息循環(huán)處的代碼塊中增加異常捕獲機(jī)制,得到所述應(yīng)用程序線程異常的捕獲機(jī)制。
在一種實(shí)施方式中,當(dāng)發(fā)生線程異常時(shí),利用所述線程異常的捕獲機(jī)制進(jìn)行異常捕獲,包括:
在消息隊(duì)列輪詢(xún)過(guò)程中,執(zhí)行具有所述異常捕獲機(jī)制的代碼塊,對(duì)所述主線程異常進(jìn)行捕獲。
在一種實(shí)施方式中,創(chuàng)建線程異常的捕獲機(jī)制,還包括:
創(chuàng)建活動(dòng)組件的生命周期異常的捕獲機(jī)制,包括:
控制活動(dòng)組件的生命周期的系統(tǒng)對(duì)象替換為繼承該系統(tǒng)對(duì)象的自定義對(duì)象,來(lái)控制所述活動(dòng)組件的生命周期的調(diào)用;
在所述活動(dòng)組件的生命周期的調(diào)用處的代碼塊中增加異常捕獲機(jī)制,得到所述活動(dòng)組件的生命周期的捕獲機(jī)制。
在一種實(shí)施方式中,當(dāng)發(fā)生線程異常時(shí),利用所述線程異常的捕獲機(jī)制進(jìn)行異常捕獲,包括:
若所述活動(dòng)組件的生命周期發(fā)生異常,執(zhí)行具有所述異常捕獲機(jī)制的代碼塊,對(duì)所述活動(dòng)組件的生命周期異常進(jìn)行捕獲。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于北京百度網(wǎng)訊科技有限公司,未經(jīng)北京百度網(wǎng)訊科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910361565.5/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過(guò)測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過(guò)處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過(guò)軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 異常檢測(cè)裝置、異常檢測(cè)方法
- 異常檢測(cè)方法、異常檢測(cè)裝置及異常檢測(cè)系統(tǒng)
- 異常檢測(cè)裝置、異常檢測(cè)方法以及異常檢測(cè)系統(tǒng)
- 異常檢測(cè)裝置、異常檢測(cè)方法以及異常檢測(cè)系統(tǒng)
- 異常檢測(cè)裝置、異常檢測(cè)方法及異常檢測(cè)系統(tǒng)
- 異常探測(cè)裝置、異常探測(cè)方法以及計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)
- 異常檢測(cè)裝置、異常檢測(cè)方法及記錄介質(zhì)
- 異常檢測(cè)裝置、異常檢測(cè)系統(tǒng)以及異常檢測(cè)方法
- 異常檢測(cè)系統(tǒng)、異常檢測(cè)裝置和異常檢測(cè)方法
- 異常檢測(cè)方法、異常檢測(cè)裝置及異常檢測(cè)系統(tǒng)
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 光源裝置、照明裝置、液晶裝置和電子裝置
- 預(yù)測(cè)裝置、編輯裝置、逆預(yù)測(cè)裝置、解碼裝置及運(yùn)算裝置
- 圖像形成裝置、定影裝置、遮光裝置以及保持裝置
- 打印裝置、讀取裝置、復(fù)合裝置以及打印裝置、讀取裝置、復(fù)合裝置的控制方法
- 電子裝置、光盤(pán)裝置、顯示裝置和攝像裝置
- 光源裝置、照明裝置、曝光裝置和裝置制造方法
- 用戶(hù)裝置、裝置對(duì)裝置用戶(hù)裝置、后端裝置及其定位方法
- 遙控裝置、通信裝置、可變裝置及照明裝置
- 透鏡裝置、攝像裝置、處理裝置和相機(jī)裝置
- 抖動(dòng)校正裝置、驅(qū)動(dòng)裝置、成像裝置、和電子裝置





