命名空間
變體
動作

std::exception

出自 cppreference.com
< cpp‎ | error
 
 
 
 
 
定義於標頭檔 <exception>
class exception;

提供一致的介面,透過 throw 表達式處理錯誤。

所有由標準程式庫產生的異常皆繼承自 std::exception

std::exception 的所有成員函式皆為 constexpr

(C++26 起)

目錄

[編輯] 成員函式

建構異常物件
(公開成員函式)
銷毀異常物件
(虛擬公開成員函式) [編輯]
複製異常物件
(公開成員函式) [編輯]
[虛擬]
返回說明字串
(虛擬公開成員函式) [編輯]

[編輯] 標準異常要求

每個繼承自 std::exception 的標準程式庫類別 T 都具有下列可公開存取的成員函式,且每一個 都不會以異常退出(C++11 前)都具有 不拋出異常的規格 (non-throwing exception specification)(C++11 起)

複製建構函式與複製賦值運算子滿足以下後置條件

  • 若兩個物件 lhsrhs 的動態類型皆為 T,且 lhsrhs 的複本,則 std::strcmp(lhs.what(), rhs.what()) 等於 0

每個該類別 Twhat() 成員函式皆滿足 std::exception::what() 所指定的約束。

[編輯] 標準異常

[編輯] 註解

功能測試巨集 數值 標準 功能
__cpp_lib_constexpr_exceptions 202411L (C++26) 異常類型的 constexpr

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯應用於之前的 C++ 標準。

DR 應用於 出版時的行為 正確的行為
LWG 471 C++98 曾對繼承自 std::exception 的標準程式庫類別沒有任何要求 已新增
English Deutsch 日本語 中文(简体) 中文(繁體)