MiddleДебаггингИногдаЕщё не отвечали
Почему этот обработчик ValueError недостижим?
Второй обработчик никогда не срабатывает, даже когда risky бросает ValueError.
try:
risky()
except Exception:
handle_generic()
except ValueError:
handle_value_error()
Найдите и исправьте ошибку.
except Exception проверяется первым и ловит и ValueError тоже (это подкласс), поэтому обработчик ValueError недостижим (Python даже предупреждает). Ставьте конкретные исключения перед общими. Также избегайте голого except: — он проглатывает KeyboardInterrupt / SystemExit.
- ✗Писать общий обработчик перед конкретным
- ✗Думать, что Python выбирает наиболее точный обработчик независимо от порядка
- ✗Считать, что
ValueErrorне подклассException
- →О чём Python предупреждает для недостижимого предложения
except? - →Почему голый
except:не рекомендуется даже при верном порядке?