js拋出異常 捕獲全局異常怎么處理?
捕獲全局異常怎么處理?將可能引發(fā)異常的代碼段放在try塊中,將處理異常的代碼放在catch塊中。catch語(yǔ)句的順序很重要。當(dāng)異常發(fā)生時(shí),它向上傳遞堆棧,每個(gè)catch塊都有機(jī)會(huì)處理它。通過(guò)將異常類型
捕獲全局異常怎么處理?
將可能引發(fā)異常的代碼段放在try塊中,將處理異常的代碼放在catch塊中。catch語(yǔ)句的順序很重要。當(dāng)異常發(fā)生時(shí),它向上傳遞堆棧,每個(gè)catch塊都有機(jī)會(huì)處理它。通過(guò)將異常類型與catch塊中指定的異常名稱相匹配,可以確定處理異常的catch塊。例如,下面的catch塊將捕獲簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(soap)異常:
catch(soapexception){控制臺(tái)寫入線(“SOAPExceptionErrorCode:{0}”,
e。子代碼.代碼.名稱)
控制臺(tái)寫入線(“soapexceptionmessages:{0}”,
e.Message)}CatcheAsSoapException控制臺(tái)寫入線(“SOAPExceptionErrorCode:{0}”,例如。子代碼.代碼.名稱)
控制臺(tái)寫入線(“Soapexceptionmessage is:{0}”,e.message)endtry如果沒(méi)有特定類型的catch塊,則可能的常規(guī)catch塊將捕獲異常。例如,您可以通過(guò)添加以下代碼來(lái)捕獲常規(guī)異常:
catch(exception){控制臺(tái)寫入線(“ExceptionMessage:{0}”,e.Message)}捕獲異??刂婆_(tái)寫入線(“exceptionmessage:{0}”,e.message)endtry將特定類型異常的catch塊放在常規(guī)異常之前。
公共語(yǔ)言運(yùn)行庫(kù)將捕獲catch塊未捕獲的異常。根據(jù)運(yùn)行時(shí)的配置,可以顯示調(diào)試對(duì)話框,或者可以停止程序的執(zhí)行,并且可以顯示包含異常信息的對(duì)話框。
如何優(yōu)雅處理前端異常?
隨著業(yè)界對(duì)用戶體驗(yàn)的重視,前端異常處理也得到了重視。像過(guò)去一樣,很少有網(wǎng)站關(guān)心你的前端是否會(huì)異常,但是現(xiàn)在更大的網(wǎng)站會(huì)收集前端異常,然后向服務(wù)器報(bào)告。
。讓我們逐一看看。
1. 異常捕獲
每個(gè)主流開(kāi)發(fā)語(yǔ)言都使用try。。。抓住。。。捕捉異常。當(dāng)然,前端JavaScript也不例外。最簡(jiǎn)單的代碼如下:
try{…}catch(E){控制臺(tái).log(e)
]盡管我們可以嘗試。。。抓住。。。對(duì)于異常的處理,也存在一個(gè)問(wèn)題:代碼會(huì)變得越來(lái)越復(fù)雜和臃腫,這種方法只適用于片段代碼的異常捕獲,全局異常捕獲非常麻煩。
所以有更好的方法。
window.oner錯(cuò)誤它不僅提供了錯(cuò)誤代碼的行號(hào),還提供了錯(cuò)誤借用信息,對(duì)我們準(zhǔn)確定位異常非常有幫助。
2. 異常報(bào)告
當(dāng)我們捕獲前端異常時(shí),我們需要將異常報(bào)告給后端服務(wù)器。我們通常通過(guò)Ajax提交。為了降低后端壓力,我們建議如果前端異常類似,只報(bào)告一次。
經(jīng)過(guò)以上處理,當(dāng)當(dāng)前端出現(xiàn)異常時(shí),我們可以實(shí)時(shí)通知程序員進(jìn)行檢查和修復(fù)。
小程序丨怎么在index.js中獲取app.js中的全局變量?
您可以將全局變量放入應(yīng)用程序.js在的GlobalData對(duì)象中:GlobalData:{A:“ABC”,B:123}索引.js或其他頁(yè)面app.globalData.aapp應(yīng)用程序.全球數(shù)據(jù).b