print exceptions

This commit is contained in:
Miguel Grinberg
2019-04-20 10:09:37 +01:00
parent db29624a45
commit 491202de1f

View File

@@ -2,10 +2,20 @@ try:
import ujson as json import ujson as json
except ImportError: except ImportError:
import json import json
try: try:
import ure as re import ure as re
except ImportError: except ImportError:
import re import re
try:
from sys import print_exception
except ImportError:
import traceback
def print_exception(exc):
traceback.print_exc()
try: try:
import usocket as socket import usocket as socket
except ImportError: except ImportError:
@@ -84,8 +94,10 @@ class Request():
if self.content_type != 'application/x-www-form-urlencoded': if self.content_type != 'application/x-www-form-urlencoded':
return None return None
if self._form is None: if self._form is None:
self._form = {urldecode(key): urldecode(value) for key, value in self._form = {
[pair.split('=', 1) for pair in self.body.decode().split('&')]} urldecode(key): urldecode(value) for key, value in [
pair.split('=', 1) for pair in
self.body.decode().split('&')]}
return self._form return self._form
def close(self): def close(self):
@@ -286,12 +298,13 @@ class Microdot():
else: else:
resp = 'Not found', 404 resp = 'Not found', 404
except Exception as exc: except Exception as exc:
print_exception(exc)
resp = None resp = None
if exc.__class__ in self.error_handlers: if exc.__class__ in self.error_handlers:
try: try:
resp = self.error_handlers[exc.__class__](req, exc) resp = self.error_handlers[exc.__class__](req, exc)
except: except Exception as exc2:
pass print_exception(exc2)
if resp is None: if resp is None:
resp = 'Internal server error', 500 resp = 'Internal server error', 500
if isinstance(resp, tuple): if isinstance(resp, tuple):