Error codes corresponding to the libuv error constants. NimNode use these codes to indicate internal errors.
Types
NodeErrorCode = enum E2BIG = "argument list too long", EACCES = "permission denied", EADDRINUSE = "address already in use", EADDRNOTAVAIL = "address not available", EAFNOSUPPORT = "address family not supported", EAGAIN = "resource temporarily unavailable", EAI_ADDRFAMILY = "address family not supported", EAI_AGAIN = "temporary failure", EAI_BADFLAGS = "bad ai_flags value", EAI_BADHINTS = "invalid value for hints", EAI_CANCELED = "request canceled", EAI_FAIL = "permanent failure", EAI_FAMILY = "ai_family not supported", EAI_MEMORY = "out of memory", EAI_NODATA = "no address", EAI_NONAME = "unknown node or service", EAI_OVERFLOW = "argument buffer overflow", EAI_PROTOCOL = "resolved protocol is unknown", EAI_SERVICE = "service not available for socket type", EAI_SOCKTYPE = "socket type not supported", EALREADY = "connection already in progress", EBADF = "bad file descriptor", EBUSY = "resource busy or locked", ECANCELED = "operation canceled", ECHARSET = "invalid Unicode character", ECONNABORTED = "software caused connection abort", ECONNREFUSED = "connection refused", ECONNRESET = "connection reset by peer", EDESTADDRREQ = "destination address required", EEXIST = "file already exists", EFAULT = "bad address in system call argument", EFBIG = "file too large", EHOSTUNREACH = "host is unreachable", EINTR = "interrupted system call", EINVAL = "invalid argument", EIO = "i/o error", EISCONN = "socket is already connected", EISDIR = "illegal operation on a directory", ELOOP = "too many symbolic links encountered", EMFILE = "too many open files", EMSGSIZE = "message too long", ENAMETOOLONG = "name too long", ENETDOWN = "network is down", ENETUNREACH = "network is unreachable", ENFILE = "file table overflow", ENOBUFS = "no buffer space available", ENODEV = "no such device", ENOENT = "no such file or directory", ENOMEM = "not enough memory", ENONET = "machine is not on the network", ENOPROTOOPT = "protocol not available", ENOSPC = "no space left on device", ENOSYS = "function not implemented", ENOTCONN = "socket is not connected", ENOTDIR = "not a directory", ENOTEMPTY = "directory not empty", ENOTSOCK = "socket operation on non-socket", ENOTSUP = "operation not supported on socket", EPERM = "operation not permitted", EPIPE = "broken pipe", EPROTO = "protocol error", EPROTONOSUPPORT = "protocol not supported", EPROTOTYPE = "protocol wrong type for socket", ERANGE = "result too large", EROFS = "read-only file system", ESHUTDOWN = "cannot send after transport endpoint shutdown", ESPIPE = "invalid seek", ESRCH = "no such process", ETIMEDOUT = "connection timed out", ETXTBSY = "text file is busy", EXDEV = "cross-device link not permitted", UNKNOWN = "unknown error", EOF = "end of file", ENXIO = "no such device or address", EMLINK = "too many links", EHOSTDOWN = "host is down", UNKNOWNSYS = "unknown system error", END_WREND = "write after end"
- Error code describing specific error. Source Edit
NodeError = object of Exception errorCode*: NodeErrorCode
- Raised if a specific operation failed. Source Edit
Procs
proc newNodeError(errorCode: cint): ref NodeError {.
raises: [], tags: [].}- Creates a new error caused by libuv operation. errorCode should be a libuv errorno. Source Edit
proc newNodeError(errorCode: NodeErrorCode): ref NodeError {.
raises: [], tags: [].}- Creates a new error caused by internal operation. Source Edit