Console: Added some filtering to ignore common exception locations
This commit is contained in:
parent
f208a9c824
commit
bb48f1cb36
|
@ -321,7 +321,33 @@ class ConsoleWidget(QtGui.QWidget):
|
||||||
self.ui.exceptionStackList.addItem('File "%s", line %s, in %s()\n %s' % line)
|
self.ui.exceptionStackList.addItem('File "%s", line %s, in %s()\n %s' % line)
|
||||||
|
|
||||||
def systrace(self, frame, event, arg):
|
def systrace(self, frame, event, arg):
|
||||||
if event == 'exception':
|
if event == 'exception' and self.checkException(*arg):
|
||||||
self.exceptionHandler(*arg)
|
self.exceptionHandler(*arg)
|
||||||
return self.systrace
|
return self.systrace
|
||||||
|
|
||||||
|
def checkException(self, excType, exc, tb):
|
||||||
|
## Return True if the exception is interesting; False if it should be ignored.
|
||||||
|
|
||||||
|
filename = tb.tb_frame.f_code.co_filename
|
||||||
|
function = tb.tb_frame.f_code.co_name
|
||||||
|
|
||||||
|
## Go through a list of common exception points we like to ignore:
|
||||||
|
if excType is GeneratorExit or excType is StopIteration:
|
||||||
|
return False
|
||||||
|
if excType is KeyError:
|
||||||
|
if filename.endswith('python2.7/weakref.py') and function == '__contains__':
|
||||||
|
return False
|
||||||
|
if filename.endswith('python2.7/copy.py') and function == '_keep_alive':
|
||||||
|
return False
|
||||||
|
if excType is AttributeError:
|
||||||
|
if filename.endswith('python2.7/collections.py') and function == '__init__':
|
||||||
|
return False
|
||||||
|
if filename.endswith('numpy/core/fromnumeric.py') and function in ('all', '_wrapit', 'transpose'):
|
||||||
|
return False
|
||||||
|
if filename.endswith('MetaArray.py') and function == '__getattr__':
|
||||||
|
for name in ('__array_interface__', '__array_struct__', '__array__'): ## numpy looks for these when converting objects to array
|
||||||
|
if name in exc:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
Loading…
Reference in New Issue
Block a user