'Wrap an errno style error.
Parameters
errno : int
The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
used.
msg : string
Description of the error or None.'

def __init__(self, errno=None, msg=None):

    from zmq.backend import strerror, zmq_errno
    if (errno is None):
        errno = zmq_errno()
    if isinstance(errno, int):
        self.errno = errno
        if (msg is None):
            self.strerror = strerror(errno)
        else:
            self.strerror = msg
    elif (msg is None):
        self.strerror = str(errno)
    else:
        self.strerror = msg
