Python Glossary English

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Сообщить о неточности