成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

服務(wù)端異常是怎么回事 如何優(yōu)雅處理前端異常?

如何優(yōu)雅處理前端異常?隨著業(yè)界對(duì)用戶(hù)體驗(yàn)的重視,前端異常處理也得到了重視。像過(guò)去一樣,很少有網(wǎng)站關(guān)心你的前端是否會(huì)異常,但是現(xiàn)在更大的網(wǎng)站會(huì)收集前端異常,然后向服務(wù)器報(bào)告。。讓我們逐一看看。1. 異常

如何優(yōu)雅處理前端異常?

隨著業(yè)界對(duì)用戶(hù)體驗(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提交。為了降低后端壓力,我們建議如果前端異常類(lèi)似,只報(bào)告一次。

經(jīng)過(guò)以上處理,當(dāng)當(dāng)前端出現(xiàn)異常時(shí),我們可以實(shí)時(shí)通知程序員進(jìn)行檢查和修復(fù)。

服務(wù)端返回結(jié)果長(zhǎng)度為零異常是什么原因?

當(dāng)TCP握手完成三次時(shí),服務(wù)器TCP將連接放入已建立的連接隊(duì)列。此時(shí),客戶(hù)機(jī)給出rst,然后accept返回。但是,accept返回一個(gè)econnectabort錯(cuò)誤。這不是致命錯(cuò)誤。

2. 服務(wù)器進(jìn)程終止的過(guò)程如下:A.終止服務(wù)進(jìn)程。作為進(jìn)程善后處理的一部分,所有打開(kāi)的文件描述符都是關(guān)閉的,這導(dǎo)致服務(wù)器TCP(注意“server”和“servertcp”是不同的概念)向客戶(hù)端發(fā)送fin,客戶(hù)端TCP用ACK響應(yīng)。

b.客戶(hù)端正在阻止scanf功能(基于上一篇文章中提到的客戶(hù)端模型),這會(huì)導(dǎo)致客戶(hù)端不知道服務(wù)器TCP已關(guān)閉連接。

c和客戶(hù)端調(diào)用write,在scanf返回后將數(shù)據(jù)發(fā)送到服務(wù)器。由于服務(wù)端已被kill刪除,服務(wù)器端TCP向客戶(hù)端TCP發(fā)送RST。

d,客戶(hù)端在發(fā)送數(shù)據(jù)后立即調(diào)用read來(lái)讀取數(shù)據(jù)。由于FIN的第一步,read立即返回0(表示EOF),但是客戶(hù)端希望接收剛才發(fā)送的數(shù)據(jù)而不是FIN。如果客戶(hù)端隨后向服務(wù)器發(fā)送數(shù)據(jù),它將誘導(dǎo)服務(wù)器TCP向服務(wù)器發(fā)送SIGPIPE信號(hào),因?yàn)樗谙蚪邮誶st的套接字寫(xiě)入數(shù)據(jù)時(shí)將接收此信號(hào)。問(wèn)題的本質(zhì)是客戶(hù)端同時(shí)處理兩個(gè)描述符--套接字和用戶(hù)輸入,程序只在一個(gè)源上被阻塞。這個(gè)問(wèn)題可以用1來(lái)解決。設(shè)置非阻塞模式。2使用Select和epoll。

3. 在客戶(hù)端TCP發(fā)送數(shù)據(jù)之后,它將嘗試重新傳輸,直到它放棄并向客戶(hù)端進(jìn)程返回錯(cuò)誤消息。Etimeout表示沒(méi)有相應(yīng)的連接,ehostunach表示路由器確定主機(jī)不可訪問(wèn)。

4. 服務(wù)器崩潰后重新啟動(dòng)

由于服務(wù)器TCP丟失了以前的連接信息,這將導(dǎo)致服務(wù)器發(fā)送rst,此時(shí)客戶(hù)端塊在讀取函數(shù)中,這將導(dǎo)致返回econnectreset錯(cuò)誤。

5。當(dāng)服務(wù)器關(guān)閉時(shí)

init進(jìn)程將首先向所有進(jìn)程發(fā)送SIGTERM(此信號(hào)可以被捕獲),然后在一段時(shí)間后向仍在運(yùn)行的程序發(fā)送sigkill(次),這與終止服務(wù)器進(jìn)程是一樣的。