Max Rusov писал(а):Вообще, в 99% случаев не требуется писать except, всегда есть корневой except в базовых библиотеках. Свой except надо писать только если по каким-то причинам не устраивает стандартная обработка исключения. Это очень редко.
Ну почему редко? Практически всегда, когда мы знаем, что на этом участке в достаточно штатной ситуации может быть ошибка (идеально, конечно, поймать её условиями, но не всегда оно того стоит). Пользователь будет совсем не рад отвечать на вопрос о том, снять ли приложение или продолжить выполнение.
А иногда бывает, что некоторые действия можно было бы выполнить, но это не суть как важно, если что-то там сорвётся; сообщать пользователю о таких мелочах совсем не стоит.
Добавлено спустя 6 минут 10 секунд:Чтобы не быть голословным: допустим, мы строим график функции, функция задаётся в виде переменной процедурного типа или даже события (возможно, она программируется совершенно другим пользователем, которому, разумеется, лень проводить проверку на ОДЗ, и тем более не удобно передавать как-то результат этой проверки); в какой-то области функция не существует. Логично, что на каждую такую точку при каждой перерисовке графика программа ругаться не должна; было бы идеально, чтобы точка просто не строилась! И она не будет строиться, если заключить её (вызов функции и построение точки) в блок try...except...end. Единственное, между except и end, по большому счёту, и ставить нечего.