Normalnie, jeśli importowany socket
, byłbym w stanie łatwo złapać wyjątki:Jak wychwycić wyjątek dla modułu, którego nie w pełni zaimportowałem?
>>> import socket
>>> try:
... socket.gethostbyname('hello')
... except socket.gaierror:
... print('oops')
...
oops
Ale jeśli po prostu importować socket.gethostbyname
, to nie będzie działać:
>>> from socket import gethostbyname
>>> try:
... gethostbyname('hello')
... except socket.gaierror:
... print('oops')
...
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
NameError: name 'socket' is not defined
ja również uzyskać NameError
jeśli spróbuję złapać gaierror
.
Czy istnieje sposób obejścia tego problemu? Czy nie można wychwycić wyjątku z ciągiem znaków (np. except 'socket.gaierror':
)?