RT,官方文檔看的不是很懂:RequestHandler.send_error(status_code=500,kwargs)**SendsthegivenHTTPerrorcodetothebrowser.Ifflush()hasalreadybeencalled,itisnotpossibletosendanerror,sothismethodwillsimplyterminatetheresponse.Ifoutputhasbeenwrittenbutnotyetflushed,itwillbediscardedandreplacedwiththeerrorpage.Overridewrite_error()tocustomizetheerrorpagethatisreturned.Additionalkeywordargumentsarepassedthroughtowrite_error.RequestHandler.write_error(status_code,kwargs)**Overridetoimplementcustomerrorpages.write_errormaycallwrite,render,set_header,etctoproduceoutputasusual.Ifthiserrorwascausedbyanuncaughtexception(includingHTTPError),anexc_infotriplewillbeavailableaskwargs["exc_info"].Notethatthisexceptionmaynotbethe“current”exceptionforpurposesofmethodslikesys.exc_info()ortraceback.format_exc.我理解的是send_error調(diào)用了write_error,所以寫自定義錯(cuò)誤頁面的時(shí)候要自己實(shí)現(xiàn)write_error方法,拋出錯(cuò)誤的時(shí)候使用send_error。那么又該在什么時(shí)候使用rasietornado.web.HTTPError呢?
Tornado中的`send_error`, `write_error`和`raise HTTPError`有什么區(qū)別?
牧羊人nacy
2019-05-25 13:37:45