一種優(yōu)秀的異常處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及JA步A技術(shù)WEB開發(fā)領(lǐng)域,具涉及一種優(yōu)秀的異常處理方法。
【背景技術(shù)】
[0002]目前,在J2EE處理異常中,通常是通過捕獲具體的異常,并在業(yè)務(wù)代碼中對異常進(jìn)行處理。這種現(xiàn)狀造成的問題是業(yè)務(wù)邏輯和異常處理邏輯混在一起,讓整個系統(tǒng)變得更負(fù)責(zé);而且每一個業(yè)務(wù)邏輯都需要處理相應(yīng)的異常,增加了平臺的代碼量、降低研發(fā)效率;最后就是,當(dāng)需要對異常處理機制進(jìn)行調(diào)整時,所有的業(yè)務(wù)模塊都需要調(diào)整,極度的不方便。比如,之前當(dāng)平臺出現(xiàn)異常時,將異常寫入數(shù)據(jù)庫即可;現(xiàn)在改為出現(xiàn)異常時,要馬上通過郵件通知技術(shù)人員處理,這就需要所有的異常處理代碼都需要調(diào)整,大大增加了系統(tǒng)的維護(hù)難度。
【發(fā)明內(nèi)容】
[0003]本發(fā)明解決的技術(shù)問題在于提供一種優(yōu)秀的異常處理方法,以實現(xiàn)平臺研發(fā)過程中異常的統(tǒng)一、高效處理。
[0004]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
[0005]當(dāng)平臺代碼拋出異常時,將異常轉(zhuǎn)化為RuntimeExcept1n類型的異常類A,但不作任何處理,而是再向外拋送;平臺再配置Struts2攔截器并設(shè)為默認(rèn)攔截器,在攔截器中捕獲A類型的異常,并作統(tǒng)一處理;當(dāng)異常處理機制改變時,改變攔截器的方法即可。
[0006]2、根據(jù)權(quán)利要求1所述的優(yōu)秀的異常處理方法,,其特征在于:所述的方法包括如下步驟:
[0007]第I步、首先實現(xiàn)RuntimeExcept1n的自定義異常類WebExcept1n ;
[0008]第2步、在業(yè)務(wù)代碼中,將捕獲的異常轉(zhuǎn)化WebExcept1n類型異常,并向外拋出;
[0009]第3步、實現(xiàn)struts2的攔截器Lo其Interceptor,并設(shè)置為默認(rèn)攔截器;
[0010]第4步、實現(xiàn)Lo其Interceptor的intercept方法,在intercept方法中捕獲WebExcept1n 的異常,
[0011]第5步、在intercept中統(tǒng)一處理捕獲的類型異常;處理方式可以寫入數(shù)據(jù)庫、文件或通知相關(guān)人員。
[0012]本發(fā)明的有益效果是:
[0013]本發(fā)明借助StrutS2的攔截器,統(tǒng)一處理平臺的所有異常問題;在業(yè)務(wù)模塊中,只做異常的捕獲,而不做具體的處理,具體的處理將統(tǒng)一在攔截器中。因為該方法是將平臺的所有異常都轉(zhuǎn)化為RuntimeExcept1n類型的異常,因此平臺出現(xiàn)無法預(yù)測的異常的也不會影響平臺的正常運行;特別是平臺使用sprin其框架進(jìn)行事務(wù)處理時,也不會影響事務(wù)的正常運作;其次,在業(yè)務(wù)實現(xiàn)中,并不具體處理異常,而是簡單的將異常轉(zhuǎn)化為類型A,再對外拋出,大大減少的業(yè)務(wù)模塊的開發(fā)量;提高開發(fā)效率。最后,通過在攔截器中捕獲異常,并統(tǒng)一處理異常,當(dāng)異常處理機制改變時,只需要改變攔截器的方法即可,業(yè)務(wù)模塊代碼無須做任何的改動,即方便又靈活。這樣不但讓平臺的業(yè)務(wù)與異常處理分開,使用平臺更簡單、業(yè)務(wù)更清晰,而且它也讓平臺的異常處理更靈活,降低平臺的升級與維護(hù)。
【附圖說明】
[0014]下面結(jié)合附圖對本發(fā)明進(jìn)一步說明:
[0015]圖1為本發(fā)明的流程圖。
【具體實施方式】
[0016]如圖1所示,本發(fā)明當(dāng)平臺代碼拋出異常時,將異常轉(zhuǎn)化為RuntimeExcept1n類型的異常類A,但不作任何處理,而是再向外拋送;平臺再配置Struts2攔截器并設(shè)為默認(rèn)攔截器,在攔截器中捕獲A類型的異常,并作統(tǒng)一處理;當(dāng)異常處理機制改變時,改變攔截器的方法即可。
[0017]所述的方法包括如不步驟:
[0018]第I步、首先實現(xiàn)RuntimeExcept1n的自定義異常類WebExcept1n ;
[0019]第2步、在業(yè)務(wù)代碼中,將捕獲的異常轉(zhuǎn)化WebExcept1n類型異常,并向外拋出;
[0020]第3步、實現(xiàn)struts2的攔截器Lo其Interceptor,并設(shè)置為默認(rèn)攔截器;
[0021]第4步、實現(xiàn)Lo其Interceptor的intercept方法,在intercept方法中捕獲WebExcept1n 的異常,
[0022]第5步、在intercept中統(tǒng)一處理捕獲的類型異常;處理方式可以寫入數(shù)據(jù)庫、文件或通知相關(guān)人員。
[0023]下面具體以教育云共享平臺的異常處理為例;具體包括如下步驟:
[0024]第I步、首先實現(xiàn)RuntimeExcept1n的自定義異常類WebExcept1n ;
[0025]第2步、在業(yè)務(wù)代碼中,通過try-c晰tc具捕獲平臺的所有異常,并將異常轉(zhuǎn)化WebExcept1n類型異常,同時通過t具row語句向外拋出;
[0026]第3步、實現(xiàn)struts2的攔截器Lo其Interceptor,并實現(xiàn)其intercept方法。在方法中捕獲WebExapt1n類型的異常,并在c晰tc具語句中把異常信息寫入數(shù)據(jù)庫和通過郵件通知管理員;
[0027]第4步、將Lo其Interceptor配置至struts2的默認(rèn)攔截器。
【主權(quán)項】
1.一種優(yōu)秀的異常處理方法,其特征在于:當(dāng)平臺代碼拋出異常時,將異常轉(zhuǎn)化為RuntimeExcept1n類型的異常類A,但不作任何處理,而是再向外拋送;平臺再配置Struts2攔截器并設(shè)為默認(rèn)攔截器,在攔截器中捕獲A類型的異常,并作統(tǒng)一處理;當(dāng)異常處理機制改變時,改變攔截器的方法即可。2.根據(jù)權(quán)利要求1所述的優(yōu)秀的異常處理方法,,其特征在于:所述的方法包括如下步驟: 第I步、首先實現(xiàn)RuntimeExcept1n的自定義異常類WebExcept1n ; 第2步、在業(yè)務(wù)代碼中,將捕獲的異常轉(zhuǎn)化WebExcept1n類型異常,并向外拋出; 第3步、實現(xiàn)struts2的攔截器Loglnterceptor,并設(shè)置為默認(rèn)攔截器; 第4步、實現(xiàn)Loglnterceptor的intercept方法,在intercept方法中捕獲WebExcept1n 的異常, 第5步、在intercept中統(tǒng)一處理捕獲的類型異常;處理方式可以寫入數(shù)據(jù)庫、文件或通知相關(guān)人員。
【專利摘要】本發(fā)明涉及JAVA技術(shù)WEB開發(fā)領(lǐng)域,具涉及一種優(yōu)秀的異常處理方法。本方法當(dāng)平臺代碼拋出異常時,將異常轉(zhuǎn)化為RuntimeException類型的異常類A,但不作任何處理,而是再向外拋送;平臺再配置Struts2攔截器并設(shè)為默認(rèn)攔截器,在攔截器中捕獲A類型的異常,并作統(tǒng)一處理;當(dāng)異常處理機制改變時,改變攔截器的方法即可。本發(fā)明有效解決了J2EE中處理異常的效率問題;可以用于J2EE的處理異常中。
【IPC分類】G06F11/07
【公開號】CN105005508
【申請?zhí)枴緾N201510386072
【發(fā)明人】關(guān)班記, 季統(tǒng)凱
【申請人】國云科技股份有限公司
【公開日】2015年10月28日
【申請日】2015年7月2日