print exceptions
This commit is contained in:
21
microdot.py
21
microdot.py
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user