Предположим, что хорошо структурированное приложение OOP Python, где каждый вызов метода завернут в блок try. Теперь предположим, что я отлаживаю это приложение, и я хочу, чтобы на самом деле были исключены исключения! Было бы неуместно заменять каждую строку if True:
и прокомментировать """
порты except:
, просто для отладки. Есть ли способ рассказать интерпретатору Python, что исключения, заданные определенной частью кода, должны остановить выполнение программы и распечатать информацию об исключении в stdout?Не перехватывайте исключения, даже изнутри блока try
Python 2.7.3 или 3.2.3 на Kubuntu Linux.
Похоже на банку червей для меня. Предположим, что в этом методе используется некоторая встроенная функция, например 'len', и эта встроенная функция использует исключения во время обычной работы. (Например, 'len (x)' может выполнять итерацию с увеличением значений i до тех пор, пока 'x [i]' не вызовет 'IndexError', а затем вернет i.) Тогда ваша гипотетическая« зона отсутствия »скажет вам, что« len » сломанный, когда это действительно не так. – Kevin
@Kevin. Или, что еще более конкретно, в случае итерации '__next__' вызывает' StopIteration', который неявно поймается зацикливающей конструкцией, поэтому он знает, чтобы перестать вызывать '__next__'! – mgilson
@ Kevin, mgilson: Я имею в виду, что код будет вести себя так же, как если бы он не был завернут в блок try. – dotancohen