DWR異常情況處理常見方法解析
在本次項(xiàng)目中,由于時(shí)間緊張直接使用DWR做Ajax請(qǐng)求!要求的是動(dòng)態(tài)展示,那就需要使用DWR輪詢請(qǐng)求,但是需要做異常情況下的一些處理!
特別是DWR在遇到異常后,后臺(tái)不報(bào)錯(cuò),前臺(tái)也只提示一個(gè) Error !如果是輪詢的話,那么就一直彈出 Error ,那誰(shuí)收到了呀!
對(duì)于DWR異常的處理,網(wǎng)上一大片都是這樣說(shuō)的,在DWR配置中增加一個(gè)轉(zhuǎn)換器,將異常轉(zhuǎn)換為一般異常,這樣在前臺(tái)就不是提示 Error,而是提示具體的錯(cuò)誤!想著這樣也可以接受,所以我記一下是怎么配置的。
很簡(jiǎn)單,在dwr.xml中增加一個(gè)轉(zhuǎn)換器:
<convert converter="bean" match="java.lang.StackTraceElement" />
<convert converter="exception" match="java.lang.Exception" />
這樣前臺(tái)就會(huì)提示一些具體的異常信息,但是不會(huì)提示棧的信息的。不然我會(huì)更受不了的!
其實(shí)對(duì)于我的請(qǐng)求來(lái)說(shuō),如果產(chǎn)生dwr異常,我不用做處理是最好的。因?yàn)樵谑褂胊jax前我會(huì)首先判斷網(wǎng)絡(luò)是否可用,然后在后臺(tái)把異常給處理好。所以要做的,就是處理掉dwr彈出提示內(nèi)容!
要做到這個(gè)也不難,那就是得到 engine.js 文件,然后在引用dwr這個(gè)公共文件時(shí)引用自己的文件。
<script type='text/javascript' src='/dwr/dwr/engine.js'></script>
改為:
<script type='text/javascript' src='engine.js'></script>
然后查詢下這個(gè)文件里面做彈出的內(nèi)容,把彈出給注釋了,就這么簡(jiǎn)單:
就像下面一樣:
/** * The default message handler. * @see getahead.org/dwr/browser/engine/errors */ dwr.engine.defaultErrorHandler = function(message, ex) { dwr.engine._debug("Error: " + ex.name + ", " + ex.message, true); if (message == null || message == ""){} //alert("A server error has occured."); // Ignore NS_ERROR_NOT_AVAILABLE if Mozilla is being narky else if (message.indexOf("0x80040111") != -1) dwr.engine._debug(message); else{} //alert(message); };
這樣dwr就算異常,也不會(huì)進(jìn)行提示的,但是主要自己處理后臺(tái)可能發(fā)生的異常就行了!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java實(shí)現(xiàn)異步線程,回調(diào)接口方式
這篇文章主要介紹了java實(shí)現(xiàn)異步線程,回調(diào)接口方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Java中l(wèi)ambda表達(dá)式的基本運(yùn)用
大家好,本篇文章主要講的是Java中l(wèi)ambda表達(dá)式的基本運(yùn)用,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01idea自帶Jacoco/idea自動(dòng)測(cè)試語(yǔ)句覆蓋率方法(使用詳解)
這篇文章主要介紹了idea自帶Jacoco/idea自動(dòng)測(cè)試語(yǔ)句覆蓋率方法,本文給大家分享使用方法,通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04java web實(shí)現(xiàn)郵箱激活與忘記密碼
這篇文章主要為大家詳細(xì)介紹了java web實(shí)現(xiàn)郵箱激活與忘記密碼、重置密碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02深入講解spring boot中servlet的啟動(dòng)過(guò)程與原理
這篇文章主要給大家介紹了關(guān)于spring boot中servlet啟動(dòng)過(guò)程與原理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07Mybatis與微服務(wù)注冊(cè)的詳細(xì)過(guò)程
這篇文章主要介紹了Mybatis與微服務(wù)注冊(cè),主要包括SpringBoot整合MybatisPlus,SpringBoot整合Freeamarker以及SpringBoot整合微服務(wù)&gateway&nginx的案例代碼,需要的朋友可以參考下2023-01-01SpringBoot注冊(cè)Filter的兩種實(shí)現(xiàn)方式
這篇文章主要介紹了SpringBoot注冊(cè)Filter的兩種實(shí)現(xiàn)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08詳解在spring中使用JdbcTemplate操作數(shù)據(jù)庫(kù)的幾種方式
這篇文章主要介紹了詳解在spring中使用JdbcTemplate操作數(shù)據(jù)庫(kù)的幾種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07