В Pycharm я хотел бы, в режиме отладки, останавливаться на любом исключении, которое входит в мой код, но игнорировать любые исключения, которые генерируются и перехватываются библиотечными функциями.
У Pycharm есть опция в точках останова, называемая Any Exception где вы можете сказать «On Raise» и «Ignore library files», что имеет большое значение, но не игнорирует StopIteration и ExitGenerator, что означает, что он останавливается в конце любого из ваших операторов генератора или yield.
например, в приведенном ниже коде генератор next((x for x in a_list))
генерирует исключение ExitGenerator, которое Pycharm останавливает в режиме отладки, но это фактически перехватывается и обрабатывается библиотечным кодом, поэтому я хочу его игнорировать.
См., например, эту программу
import pandas as pd
try:
# spurious exception
a_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
first_item = next((x for x in a_list))
print(f'first item = {first_item}')
except Exception as e:
# the program won't go here as the ExitGenerator exception is handled by the standard library
print(f'got exception from generator : {str(e)}')
try:
# proper exception from a library
df = pd.DataFrame(index=[1, 2, 3], data=['a', 'b', 'c'], columns=['letters'])
# try to access but use the wrong column name to generate an exception
print(df['non_existent_column'])
except Exception as e:
# the program will come here as the code tried to access a non-existent column
print(f'got exception from pandas : {str(e)}')
и в результате отладки получается следующий вывод
Connected to pydev debugger (build 201.6668.115)
Stack:
<genexpr>, play.py:6
<module>, play.py:6
first item = a
Stack:
<module>, play.py:17
got exception from pandas : 'non_existent_column'
Process finished with exit code 0
Pycharm сначала перехватывает исключение ложного генератора, которое не достигает моего кода, а затем перехватывает собственное исключение pandas, которое действительно читает мой код Это моя настройка точки останова между прочим

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