У меня есть некоторый код Python, который привязывается к сокету.Я ловлю любое исключение, чтобы справиться с этим.В зависимости от ошибки, я хочу делать разные вещи.Как узнать, что означает номер ошибки?
Например, я хочу сделать что-то вроде:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind(('', 80))
except socket.error, ex
(error_number, error_message) = ex
if error_number==EADDRINUSE:
print "You can't bind to that port -- someone else is using it"
else:
print "Unknown socket error"
, за исключением того, что я не знаю, какой номер ошибки соответствует EADDRINUSE.На моем компьютере с Ubuntu это 98, на Mac с OS X 10.5 - 48, а на Windows XP - 10048. Есть ли место, где они включены в библиотеку Python?
Я понимаю,что цифры разные из-за различий в errno.h в слое C, но я не знаю, где они выставлены в python.Точно так же я предполагаю, что я не могу полагаться на сообщение об ошибке, являющееся определенной строкой.
Кроме того, я не просто обеспокоен EADDRINUSE - я хотел бы также покрыть другие ошибки.