C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- std::exception_ptr
- std::error_code
- std::error_condition
- std::terminate
- std::exception
- std::current_exception
- std::rethrow_exception
- std::make_exception_ptr
- std::unexpected
- std::uncaught_exception, std::uncaught_exceptions
- assert
- errno
- std::nested_exception
- std::throw_with_nested
- std::rethrow_if_nested
- std::terminate_handler
- std::get_terminate
- std::set_terminate
- std::bad_exception
- std::unexpected_handler
- std::get_unexpected
- std::set_unexpected
- é误å·
- std::logic_error
- std::invalid_argument
- std::domain_error
- std::length_error
- std::out_of_range
- std::runtime_error
- std::range_error
- std::overflow_error
- std::underflow_error
- std::tx_exception
- std::error_category
- std::generic_category
- std::system_category
- std::errc
- std::system_error
- 注é
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >é误å¤ç > é误å·
é误å·
æ¯ä¸ªå®ä¹äº <cerrno> çå®å±å¼æ int ç±»åçæ´æ°å¸¸é表达å¼ï¼æ¯ä¸ªé½æ¥ææ£å¼ï¼å¹é
POSIX é误ç ä¸ç大夿°ãä¸å常éå¾å°å®ä¹ï¼å®ç°å¯ä»¥å®ä¹æ´å¤ï¼åªè¦å®ä»¬ä»¥ 'E' å¼å§ï¼åéæ°åæå¤§å忝ï¼
| å®ä¹äºå¤´æä»¶
<cerrno> | |
| E2BIG (C++11) |
åæ°å表è¿é¿ (å®å¸¸é) |
| EACCES (C++11) |
æéè¢«ç¦æ¢ (å®å¸¸é) |
| EADDRINUSE (C++11) |
å°åå¨ä½¿ç¨ä¸ (å®å¸¸é) |
| EADDRNOTAVAIL (C++11) |
å°åä¸å¯ç¨ (å®å¸¸é) |
| EAFNOSUPPORT (C++11) |
䏿¯æå°åç³»å (å®å¸¸é) |
| EAGAIN (C++11) |
èµæºä¸å¯ç¨ï¼é¡»éè¯ (å®å¸¸é) |
| EALREADY (C++11) |
è¿æ¥å·²å¨è¿è¡ (å®å¸¸é) |
| EBADF (C++11) |
åççæä»¶æè¿°ç¬¦ (å®å¸¸é) |
| EBADMSG (C++11) |
åçæ¶æ¯ (å®å¸¸é) |
| EBUSY (C++11) |
è®¾å¤æèµæºå¿ (å®å¸¸é) |
| ECANCELED (C++11) |
æä½åæ¶ (å®å¸¸é) |
| ECHILD (C++11) |
æ åè¿ç¨ (å®å¸¸é) |
| ECONNABORTED (C++11) |
è¿æ¥è¢«ææ (å®å¸¸é) |
| ECONNREFUSED (C++11) |
è¿æ¥è¢«æç» (å®å¸¸é) |
| ECONNRESET (C++11) |
è¿æ¥è¢«éç½® (å®å¸¸é) |
| EDEADLK (C++11) |
èµæºæ»éä¼åç (å®å¸¸é) |
| EDESTADDRREQ (C++11) |
è¦æ±ç®æ å°å (å®å¸¸é) |
| EDOM |
æ°å¦åæ°å¨å½æ°å®ä¹åå¤ (å®å¸¸é) |
| EEXIST (C++11) |
æä»¶å·²åå¨ (å®å¸¸é) |
| EFAULT (C++11) |
åçå°å (å®å¸¸é) |
| EFBIG (C++11) |
æä»¶è¿å¤§ (å®å¸¸é) |
| EHOSTUNREACH (C++11) |
主æºä¸å¯æµè¾¾ (å®å¸¸é) |
| EIDRM (C++11) |
æ è¯ç¬¦è¢«ç§»é¤ (å®å¸¸é) |
| EILSEQ (C++11) |
éæ³åèåºå (å®å¸¸é) |
| EINPROGRESS (C++11) |
æä½å·²å¨è¿è¡ (å®å¸¸é) |
| EINTR (C++11) |
彿°è¢«ä¸æ (å®å¸¸é) |
| EINVAL (C++11) |
鿳忰 (å®å¸¸é) |
| EIO (C++11) |
I/O é误 (å®å¸¸é) |
| EISCONN (C++11) |
æ¥å¤´å·²è¿æ¥ (å®å¸¸é) |
| EISDIR (C++11) |
æ¯ç®å½ (å®å¸¸é) |
| ELOOP (C++11) |
符å·é¾æ¥çº§å«è¿å¤ (å®å¸¸é) |
| EMFILE (C++11) |
æä»¶æè¿°ç¬¦å¼è¿å¤§ (å®å¸¸é) |
| EMLINK (C++11) |
龿¥è¿å¤ (å®å¸¸é) |
| EMSGSIZE (C++11) |
æ¶æ¯è¿å¤§ (å®å¸¸é) |
| ENAMETOOLONG (C++11) |
æä»¶åè¿é¿ (å®å¸¸é) |
| ENETDOWN (C++11) |
ç½ç»ä¸å·¥ä½ (å®å¸¸é) |
| ENETRESET (C++11) |
è¿æ¥è¢«ç½ç»ææ (å®å¸¸é) |
| ENETUNREACH (C++11) |
ç½ç»ä¸å¯æµè¾¾ (å®å¸¸é) |
| ENFILE (C++11) |
ç³»ç»ä¸æå¼æä»¶è¿å¤ (å®å¸¸é) |
| ENOBUFS (C++11) |
æ ç¼å²ç©ºé´å¯ç¨ (å®å¸¸é) |
| ENODATA (C++11) |
æµå¤´å·²è¯»åéå䏿 æ¶æ¯ (å®å¸¸é) |
| ENODEV (C++11) |
æ æ¤è®¾å¤ (å®å¸¸é) |
| ENOENT (C++11) |
æ æ¤æä»¶æç®å½ (å®å¸¸é) |
| ENOEXEC (C++11) |
坿§è¡æä»¶æ ¼å¼é误 (å®å¸¸é) |
| ENOLCK (C++11) |
æ å¯ç¨é (å®å¸¸é) |
| ENOLINK (C++11) |
龿¥å·²åæ (å®å¸¸é) |
| ENOMEM (C++11) |
空é´ä¸è¶³ (å®å¸¸é) |
| ENOMSG (C++11) |
æ æéç±»åæ¶æ¯ (å®å¸¸é) |
| ENOPROTOOPT (C++11) |
åè®®ä¸å¯ç¨ (å®å¸¸é) |
| ENOSPC (C++11) |
è®¾å¤æ å©ä½ç©ºé´ (å®å¸¸é) |
| ENOSR (C++11) |
æ æµèµæº (å®å¸¸é) |
| ENOSTR (C++11) |
éæµ (å®å¸¸é) |
| ENOSYS (C++11) |
䏿¯æç彿° (å®å¸¸é) |
| ENOTCONN (C++11) |
æªè¿æ¥çæ¥å¤´ (å®å¸¸é) |
| ENOTDIR (C++11) |
éç®å½ (å®å¸¸é) |
| ENOTEMPTY (C++11) |
ç®å½é空 (å®å¸¸é) |
| ENOTRECOVERABLE (C++11) |
ç¶æä¸å¯æ¢å¤ (å®å¸¸é) |
| ENOTSOCK (C++11) |
鿥头 (å®å¸¸é) |
| ENOTSUP (C++11) |
䏿¯æ (å®å¸¸é) |
| ENOTTY (C++11) |
ä¸éåç I/O æ§å¶æä½ (å®å¸¸é) |
| ENXIO (C++11) |
æ æ¤è®¾å¤æå°å (å®å¸¸é) |
| EOPNOTSUPP (C++11) |
æ¥å¤´ä¸ä¸æ¯æçæä½ (å®å¸¸é) |
| EOVERFLOW (C++11) |
å¼è¿å¤§èæ æ³åå
¥æ°æ®ç±»å (å®å¸¸é) |
| EOWNERDEAD (C++11) |
å
忥æè
å·²æ» (å®å¸¸é) |
| EPERM (C++11) |
æä½ä¸å
许 (å®å¸¸é) |
| EPIPE (C++11) |
管éæå (å®å¸¸é) |
| EPROTO (C++11) |
åè®®é误 (å®å¸¸é) |
| EPROTONOSUPPORT (C++11) |
䏿¯æçåè®® (å®å¸¸é) |
| EPROTOTYPE (C++11) |
æ¥å¤´ç±»åé误çåè®® (å®å¸¸é) |
| ERANGE |
ç»æè¿å¤§ (å®å¸¸é) |
| EROFS (C++11) |
åªè¯»æä»¶ç³»ç» (å®å¸¸é) |
| ESPIPE (C++11) |
éæ³å¯»ä½ (å®å¸¸é) |
| ESRCH (C++11) |
æ æ¤è¿ç¨ (å®å¸¸é) |
| ETIME (C++11) |
æµ ioctl() è¶
æ¶ (å®å¸¸é) |
| ETIMEDOUT (C++11) |
è¿æ¥è¶
æ¶ (å®å¸¸é) |
| ETXTBSY (C++11) |
ææ¬æä»¶å¿ (å®å¸¸é) |
| EWOULDBLOCK (C++11) |
æä½ä¼é»å¡ (å®å¸¸é) |
| EXDEV (C++11) |
跨设å¤é¾æ¥ (å®å¸¸é) |
è¦æ±ææå¼ä¸ºå¯ä¸ï¼é¤äº EOPNOTSUPP ä¸ ENOTSUP çå¼å¯ä»¥ç¸åï¼å EAGAIN ä¸ EWOULDBLOCK çå¼å¯ä»¥ç¸å
示ä¾
è¿è¡æ¤ä»£ç
#include <iostream> #include <cmath> #include <cerrno> #include <cstring> #include <clocale> Â int main() { double not_a_number = std::log(-1.0); if (errno == EDOM) { std::cout << "log(-1) failed: " << std::strerror(errno) << '\n'; std::setlocale(LC_MESSAGES, "de_DE.utf8"); std::cout << "Or, in German, " << std::strerror(errno) << '\n'; } }
å¯è½çè¾åºï¼
log(-1) failed: Numerical argument out of domain Or, in German, Das numerische Argument ist ausserhalb des Definitionsbereiches
åé
| (C++11) |
ååºæææ å <cerrno> å®å¸¸éç std::error_condition æä¸¾ (ç±») |
| å±å¼æ POSIX å
¼å®¹ç线ç¨å±åé误å·åéçå® (å®åé) | |
| æ¾ç¤ºå¯¹åºå½åé误çåç¬¦ä¸²äº stderr (彿°) | |
| è¿åç»å®é误ç çææ¬çæ¬ (彿°) |