民國107年 第2梯次 電腦軟體設計(C++)乙級 學科
第34題
下列之區塊,何者可以捕捉任何型態之例外?
題目
下列之區塊,何者可以捕捉任何型態之例外?
- (1) catch(){ }
- (2) catch(...){ }
- (3) catch(*){ }
- (4) catch(exc eption){ }
官方答案
(2) catch(...){ }
解析
C++ 的例外處理中,catch(...) 使用省略符號(ellipsis)作為捕捉子,可捕捉任意型態拋出的例外,是最通用的捕捉處理器,應置於一連串 catch 的最後。catch() 語法不完整不合法;catch(*) 非合法語法;catch(exception e) 只能捕捉 std::exception 及其衍生型態,無法捕捉如 int、char* 等基本型態或自訂非繼承類別的例外。因此只有 catch(...) 能捕捉任何型態,選 2。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。