Python 3.3+ipaddressисключение
ipaddress.NetmaskValueError
исключения
Исключение о неверной маске или префиксе сети; подкласс ValueError, его бросают конструкторы IPv4Network и IPv6Network.
Синтаксис
except ipaddress.NetmaskValueError:
Ловит только ошибку в самой маске — '/33' или '/255.0.255.0'. Взведённые биты хоста ('10.0.0.1/24') — это обычный ValueError, а фабрика ip_network() и плохую маску превращает в обычный ValueError. Надёжнее всего ловить ValueError, а NetmaskValueError — когда нужно отличить именно ошибку маски при прямом вызове конструктора.
Примеры
import ipaddress
for text in ['10.0.0.0/33', '10.0.0.1/24']:
try:
ipaddress.IPv4Network(text)
except ipaddress.NetmaskValueError as e:
print('маска:', e)
except ValueError as e:
print('другое:', e)
# → маска: '33' is not a valid netmask / другое: 10.0.0.1/24 has host bits set
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности