Error handling¶
In libuv errors are negative numbered constants. As a rule of thumb, whenever there is a status parameter, or an API functions returns an integer, a negative number will imply an error.
Note
Implementation detail: on Unix error codes are the negated errno (or -errno), while on Windows they are defined by libuv to arbitrary negative numbers.
Error constants¶
-
UV_E2BIG
¶ argument list too long
-
UV_EACCES
¶ permission denied
-
UV_EADDRINUSE
¶ address already in use
-
UV_EADDRNOTAVAIL
¶ address not available
-
UV_EAFNOSUPPORT
¶ address family not supported
-
UV_EAGAIN
¶ resource temporarily unavailable
-
UV_EAI_ADDRFAMILY
¶ address family not supported
-
UV_EAI_AGAIN
¶ temporary failure
-
UV_EAI_BADFLAGS
¶ bad ai_flags value
-
UV_EAI_BADHINTS
¶ invalid value for hints
-
UV_EAI_CANCELED
¶ request canceled
-
UV_EAI_FAIL
¶ permanent failure
-
UV_EAI_FAMILY
¶ ai_family not supported
-
UV_EAI_MEMORY
¶ out of memory
-
UV_EAI_NODATA
¶ no address
-
UV_EAI_NONAME
¶ unknown node or service
-
UV_EAI_OVERFLOW
¶ argument buffer overflow
-
UV_EAI_PROTOCOL
¶ resolved protocol is unknown
-
UV_EAI_SERVICE
¶ service not available for socket type
-
UV_EAI_SOCKTYPE
¶ socket type not supported
-
UV_EALREADY
¶ connection already in progress
-
UV_EBADF
¶ bad file descriptor
-
UV_EBUSY
¶ resource busy or locked
-
UV_ECANCELED
¶ operation canceled
-
UV_ECHARSET
¶ invalid Unicode character
-
UV_ECONNABORTED
¶ software caused connection abort
-
UV_ECONNREFUSED
¶ connection refused
-
UV_ECONNRESET
¶ connection reset by peer
-
UV_EDESTADDRREQ
¶ destination address required
-
UV_EEXIST
¶ file already exists
-
UV_EFAULT
¶ bad address in system call argument
-
UV_EFBIG
¶ file too large
-
UV_EHOSTUNREACH
¶ host is unreachable
-
UV_EINTR
¶ interrupted system call
-
UV_EINVAL
¶ invalid argument
-
UV_EIO
¶ i/o error
-
UV_EISCONN
¶ socket is already connected
-
UV_EISDIR
¶ illegal operation on a directory
-
UV_ELOOP
¶ too many symbolic links encountered
-
UV_EMFILE
¶ too many open files
-
UV_EMSGSIZE
¶ message too long
-
UV_ENAMETOOLONG
¶ name too long
-
UV_ENETDOWN
¶ network is down
-
UV_ENETUNREACH
¶ network is unreachable
-
UV_ENFILE
¶ file table overflow
-
UV_ENOBUFS
¶ no buffer space available
-
UV_ENODEV
¶ no such device
-
UV_ENOENT
¶ no such file or directory
-
UV_ENOMEM
¶ not enough memory
-
UV_ENONET
¶ machine is not on the network
-
UV_ENOPROTOOPT
¶ protocol not available
-
UV_ENOSPC
¶ no space left on device
-
UV_ENOSYS
¶ function not implemented
-
UV_ENOTCONN
¶ socket is not connected
-
UV_ENOTDIR
¶ not a directory
-
UV_ENOTEMPTY
¶ directory not empty
-
UV_ENOTSOCK
¶ socket operation on non-socket
-
UV_ENOTSUP
¶ operation not supported on socket
-
UV_EPERM
¶ operation not permitted
-
UV_EPIPE
¶ broken pipe
-
UV_EPROTO
¶ protocol error
-
UV_EPROTONOSUPPORT
¶ protocol not supported
-
UV_EPROTOTYPE
¶ protocol wrong type for socket
-
UV_ERANGE
¶ result too large
-
UV_EROFS
¶ read-only file system
-
UV_ESHUTDOWN
¶ cannot send after transport endpoint shutdown
-
UV_ESPIPE
¶ invalid seek
-
UV_ESRCH
¶ no such process
-
UV_ETIMEDOUT
¶ connection timed out
-
UV_ETXTBSY
¶ text file is busy
-
UV_EXDEV
¶ cross-device link not permitted
-
UV_UNKNOWN
¶ unknown error
-
UV_EOF
¶ end of file
-
UV_ENXIO
¶ no such device or address
-
UV_EMLINK
¶ too many links
API¶
-
const char*
uv_strerror
(int err)¶ Returns the error message for the given error code. Leaks a few bytes of memory when you call it with an unknown error code.
-
const char*
uv_err_name
(int err)¶ Returns the error name for the given error code. Leaks a few bytes of memory when you call it with an unknown error code.