C++程式設計:函式 try 塊

函式 try 塊是一種

函式體

的替代語法形式,是函式定義的一部分。

在該塊中捕獲的異常會被隱式地重新丟擲。

語法說明

try

建構函式初始化器

(可選)

複合語句

處理塊序列

建構函式初始化器

成員初始化器列表,只在建構函式允許

複合語句

花括號環繞的語句序列,它組成函式體

處理塊列表

一或多個 catch 子句的序列

一個例子:

#include struct foo { foo() { throw 0; // 拋個異常 } };struct bar { bar() try : foo_{} { // 建構函式體 } catch (。。。) { // 捕獲來自初始化列表的異常 // 此程式碼塊結束後,異常又被丟擲 ,只有程式結束會停止丟擲 std::cout << “bar” << std::endl; //此處隱式 throw; } private: foo foo_;};int main() try { bar b{};}catch(。。。) { // 最終,在此捕獲 std::cout << “main” << std::endl;}

C++程式設計:函式 try 塊

線上編譯測試

https://wandbox。org/nojs/gcc-headhttps://wandbox。org/nojs/clang-head