Обработка исключений в PyQt5 [дубликат]

Пример использования интерпретатора Python REPL с функцией, которая принимает параметры.

>>> import timeit                                                                                         

>>> def naive_func(x):                                                                                    
...     a = 0                                                                                             
...     for i in range(a):                                                                                
...         a += i                                                                                        
...     return a                                                                                          

>>> def wrapper(func, *args, **kwargs):                                                                   
...     def wrapper():                                                                                    
...         return func(*args, **kwargs)                                                                  
...     return wrapper                                                                                    

>>> wrapped = wrapper(naive_func, 1_000)                                                                  

>>> timeit.timeit(wrapped, number=1_000_000)                                                              
0.4458435332577161                                                                                        
3
задан GriMel 6 February 2016 в 00:30
поделиться

1 ответ

Точка использования excepthook заключается в том, что вы можете отслеживать все исключения, поднятые вашей программой, и обрабатывать их по центру.

Таким образом, вам следует избавиться от большинства этих блоков try/except и запишите исключения внутри функции excepthook. Я говорю «most», потому что вы можете быть затронуты bug 1230540 , где sys.excepthook неправильно вызывается за пределами основного потока. См. Поток трекера для некоторых обходных путей для этого, или этот ответ SO .

2
ответ дан Community 20 August 2018 в 13:24
поделиться
  • 1
    Пробовал делать исключения из QThread - все работает нормально, поэтому мне не нужен дополнительный хак, и я полностью удалил все try...except и чувствовал себя намного счастливее) – GriMel 11 February 2016 в 01:29
  • 2
Другие вопросы по тегам:

Похожие вопросы: