equal
deleted
inserted
replaced
99 |
99 |
100 def do_POST(self): |
100 def do_POST(self): |
101 try: |
101 try: |
102 self.do_write() |
102 self.do_write() |
103 except Exception: |
103 except Exception: |
104 self._start_response(r"500 Internal Server Error", []) |
104 # I/O below could raise another exception. So log the original |
105 self._write(b"Internal Server Error") |
105 # exception first to ensure it is recorded. |
106 self._done() |
|
107 tb = r"".join(traceback.format_exception(*sys.exc_info())) |
106 tb = r"".join(traceback.format_exception(*sys.exc_info())) |
108 # We need a native-string newline to poke in the log |
107 # We need a native-string newline to poke in the log |
109 # message, because we won't get a newline when using an |
108 # message, because we won't get a newline when using an |
110 # r-string. This is the easy way out. |
109 # r-string. This is the easy way out. |
111 newline = chr(10) |
110 newline = chr(10) |
112 self.log_error(r"Exception happened during processing " |
111 self.log_error(r"Exception happened during processing " |
113 r"request '%s':%s%s", self.path, newline, tb) |
112 r"request '%s':%s%s", self.path, newline, tb) |
|
113 |
|
114 self._start_response(r"500 Internal Server Error", []) |
|
115 self._write(b"Internal Server Error") |
|
116 self._done() |
114 |
117 |
115 def do_PUT(self): |
118 def do_PUT(self): |
116 self.do_POST() |
119 self.do_POST() |
117 |
120 |
118 def do_GET(self): |
121 def do_GET(self): |