這是我第一次使用SimpleHTTPServer,老實說,我是第一次使用Web服務器,而且我有一個令人沮喪的問題。我會啓動我的服務器(通過SSH),然後我會去嘗試訪問它,一切都會好起來的。但幾小時後我會回來,服務器將不再運行。到那時,SSH會話已經斷開,所以我看不到是否有任何錯誤消息。 (是的,我知道我應該使用類似屏幕的東西來保存shell信息 - 現在就試試,但我需要等待它再次下降。)Python SimpleHTTPServer繼續下去,我不知道爲什麼
我以爲這可能只是我的代碼是拋出一個異常,因爲我沒有錯誤處理,但我添加了什麼應該是一個漂亮的try-catch塊,而且我仍然遇到了這個問題。 (我覺得這可能不是錯誤處理的最佳方法,但我在這個新的......所以讓我知道,如果有更好的方法來做到這一點)
class MyRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
# (this is the only function my request handler has)
def do_GET(self):
if 'search=' in self.path:
try:
# (my code that does stuff)
except Exception as e:
# (log the error to a file)
return
else:
SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
沒有人有任何建議檢查事項,或診斷問題的方法?我想最有可能的是,我的代碼只是在其他地方崩潰......但如果有什麼特別的我應該知道SimpleHTTPServer的運作方式,請告訴我。
作爲第一步,你可以添加一個'除了BaseException as e:'來捕獲所有如果你的代碼偶然會引發這種情況,那麼可以引發其他異常,比如'SystemExit'。 –
@ TadhgMcDonald-Jensen BaseException是否捕獲比異常更多的異常類型? – ekl
是的,如果任何不是BaseException的子類的異常被嘗試提出,它就會引發'TypeError:異常必須從BaseException' –