民國107年 第2梯次 電腦軟體設計(C++)乙級 學科

第34題

下列之區塊,何者可以捕捉任何型態之例外?

題目

下列之區塊,何者可以捕捉任何型態之例外?

  1. (1) catch(){ }
  2. (2) catch(...){ }
  3. (3) catch(*){ }
  4. (4) catch(exc eption){ }

官方答案

(2) catch(...){ }

解析

C++ 的例外處理中,catch(...) 使用省略符號(ellipsis)作為捕捉子,可捕捉任意型態拋出的例外,是最通用的捕捉處理器,應置於一連串 catch 的最後。catch() 語法不完整不合法;catch(*) 非合法語法;catch(exception e) 只能捕捉 std::exception 及其衍生型態,無法捕捉如 int、char* 等基本型態或自訂非繼承類別的例外。因此只有 catch(...) 能捕捉任何型態,選 2。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料