3
我正在編寫一個基於webapp2框架的web應用程序。我使用的是公共基礎例外所有的錯誤,我明確地拋出,就像是否存在用於向下轉換的Python成語?
class MyBaseException(Exception):
def __init__(self, status, code, message):
self.status_code = status
self.error_code = code
self.error_message = message
,並有BaseRequestHandler
輸出錯誤一個簡單的JSON響應,默認爲意外的異常500 /一般錯誤。
class BaseHandler(webapp2.RequestHandler):
def handle_exception(self, e, debug):
logger.exception(e)
status = e.status_code if isinstance(e, MyBaseException) else 500
code = e.error_code if isinstance(e, MyBaseException) else 'GENERIC_ERROR'
message = e.error_message if isinstance(e, MyBaseException) else 'Blah blah blah'
self.response.set_status(status)
self.response.content_type = 'application/json'
self.response.write(json.encode({"code": code, "message": message})
那些isinstance
檢查長得不好看我的,所以我想,必須有一個更好的辦法。建議?
編輯這與下降有什麼關係?
在java中,我的「原生」的語言,我會做這樣的事情
MyBaseException b = (MyBaseException) e;
JSONObject j = new JSONObject();
j.put("error_code", e.getCode());
j.put("error_message", e.getErrorMessage());
...
但Python有沒有明確的類型轉換如此...是有可能做這樣的事情?
這與下降有什麼關係? – Goyo