若要在 C++ 中實現異常處理,你可以使用 try、throw 和 catch 表達式。
首先,使用 try 塊將可能引發異常的一個或多個語句封閉起來。
throw 表達式發出信號,異常條件(通常是錯誤)已在 try 塊中發生。你可以使用任何類型的對象作為 throw 表達式的操作數。該對象一般用于傳達有關錯誤的信息。大多數情況下,建議你使用 std::exception 類或標準庫中定義的派生類之一。如果其中的類不合適,建議你從 std::exception 派生自己的異常類。
若要處理可能引發的異常,請在 try 塊之后立即實現一個或多個 catch 塊。每個 catch 塊指定它能處理的異常類型。
以下示例將顯示 try 塊及其處理程序。假設 GetNetworkResource() 通過網絡連接獲取數據,并且兩個異常類型是從 std::exception 派生的用戶定義的類。請注意,異常由 catch 語句中的 const 引用捕獲。我們建議你通過值引發異常并通過常數引用將其捕獲。
MyData md;try { // Code that could throw an exception md = GetNetworkResource();}catch (const networkIOException& e) { // Code that executes when an exception of type // networkIOException is thrown in the try block // ... // Log error message in the exception object cerr << e.what();}catch (const myDataFormatException& e) { // Code that handles another exception type // ... cerr << e.what();}// The following syntax shows a throw expressionMyData GetNetworkResource(){ // ... if (IOSuccess == false) throw networkIOException("Unable to connect"); // ... if (readError) throw myDataFormatException("Format error"); // ...}
備注
try 子句后的代碼是代碼的受保護部分。 throw 表達式將引發(即引起)異常。 catch 子句后的代碼塊是異常處理程序。如果 throw 和 catch 表達式中的類型兼容,該處理程序將捕獲引發的異常。有關管理 catch 塊中類型匹配的規則的列表,請參閱Catch 塊的計算方式 (C++)。如果 catch 語句指定省略號 (...) 而非類型,catch 塊將處理每種類型的異常。當你使用 /EHa 選項編譯時,異常可包括 C 結構化異常和系統生成或應用程序生成的異步異常,例如內存保護、被零除和浮點沖突。由于 catch 塊按編程順序處理以查找匹配類型,所以盡量不要使用省略號處理程序來處理關聯的 try 塊。請謹慎使用 catch(...);除非 catch 塊知道如何處理捕獲的特定異常,否則禁止程序繼續執行。 catch(...) 塊一般用于在程序停止執行前記錄錯誤和執行特殊的清理工作。
沒有操作數的 throw 表達式將重新引發當前正在處理的異常。我們建議在重新引發異常時采用該形式,是因為這將保留原始異常的多態類型信息。此類表達式只應在 catch 處理程序中或從 catch 處理程序調用的函數中使用。重新引發的異常對象是原始異常對象,而不是副本。
try { throw CSomeOtherException();}catch(...) { // Catch all exceptions 亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb 国产精品99蜜臀久久不卡二区| 国产精品成人久久久久| 欧美成人自拍视频| 91国偷自产一区二区三区的观看方式| 亚洲a区在线视频| 97av在线影院| 中文字幕日韩av| 国产精品第100页| 日本午夜在线亚洲.国产| 久久男人的天堂| 欧美午夜精品久久久久久浪潮| 97国产精品视频人人做人人爱| 欧美激情中文字幕乱码免费| 日韩欧美高清在线视频| 78色国产精品| xxxx欧美18另类的高清| 最近2019免费中文字幕视频三| 亚洲香蕉成人av网站在线观看| 国产精品免费久久久| 国产在线观看精品| 91亚洲人电影| 久久久久久久影院| 亚洲男人天堂2024| 国内精品模特av私拍在线观看| 不卡伊人av在线播放| 日韩电影视频免费| 国产色婷婷国产综合在线理论片a| 国产欧美精品一区二区| 国产精品自拍偷拍视频| 亚洲成av人影院在线观看| 欧美猛男性生活免费| 成人黄色在线播放| 国产精品毛片a∨一区二区三区|国| 欧美极品美女视频网站在线观看免费| 欧美日韩国产综合视频在线观看中文| 日韩一二三在线视频播| 亚洲www在线| 欧美综合第一页| 欧美成人一区二区三区电影| 欧美老女人性生活| 三级精品视频久久久久| 欧美久久精品一级黑人c片| 狠狠操狠狠色综合网| 欧美专区福利在线| 亚洲精品v天堂中文字幕| 国产成人综合av| 国产999精品久久久| 成人黄色网免费| 国产精品久久电影观看| 日本高清视频精品| 成人性生交大片免费观看嘿嘿视频| 国产一区二区三区在线免费观看| 国内精品久久久久影院 日本资源| 午夜精品免费视频| 久久精品一偷一偷国产| 中文字幕久久精品| www亚洲精品| 91免费国产视频| 亚洲国模精品私拍| 国产成人精品一区二区三区| 国产日韩欧美日韩大片| 亚洲成人久久久| 国产成人精品久久二区二区91| 91精品在线影院| 91高清视频在线免费观看| 97超碰色婷婷| 国产精品成人久久久久| 日韩视频欧美视频| 久久久久成人精品| 国产精品自拍视频| 欧美激情第一页xxx| 久久久久久亚洲精品| 国产精品成人久久久久| 成人乱人伦精品视频在线观看| 日韩大陆欧美高清视频区| 亚洲第一精品夜夜躁人人爽| 国产日韩换脸av一区在线观看| 日韩中文字幕国产| 成人午夜在线视频一区| 亚洲人高潮女人毛茸茸| 97色在线观看免费视频| 伊人久久精品视频| 久久精品国产成人| 538国产精品视频一区二区| 久久韩国免费视频| 91精品视频免费| 久久国产精品视频| 亚洲免费一在线| 亚洲色图av在线| 97免费视频在线播放| 欧美日韩国产精品一区| 久久视频免费在线播放| 亚洲影院高清在线| 欧美激情va永久在线播放| 国产噜噜噜噜久久久久久久久| 亚洲第一中文字幕在线观看| 精品国产欧美一区二区三区成人| 亚洲网站视频福利| 最好看的2019的中文字幕视频| 亚洲va久久久噜噜噜久久天堂| 精品国产精品三级精品av网址| 疯狂蹂躏欧美一区二区精品| 在线国产精品播放| 欧美人交a欧美精品| 国产精品成人观看视频国产奇米| 久久久99免费视频| 97视频在线观看免费高清完整版在线观看| 国语自产精品视频在免费| 麻豆国产va免费精品高清在线| 日韩精品小视频| 精品国模在线视频| 欧美午夜女人视频在线| 色爱av美腿丝袜综合粉嫩av| 亚洲精品国产综合区久久久久久久| 欧美成年人视频网站| 国产精品久久久久av免费| 国产精品69精品一区二区三区| 中文字幕精品国产| 欧美日韩国产精品专区| 国产亚洲精品久久久久动| 91精品国产色综合久久不卡98口| 中文字幕无线精品亚洲乱码一区| 久久久久久久久久久免费| 久久久久久久国产精品| 国产91色在线| 在线亚洲午夜片av大片| 欧美精品免费在线观看| 亚洲性夜色噜噜噜7777| 国产经典一区二区| 亚洲小视频在线| 国产99视频在线观看| 日韩在线免费高清视频| 亚洲欧美成人一区二区在线电影| 51精品国产黑色丝袜高跟鞋| 久久久99免费视频| 国产精品伦子伦免费视频| 国产精品高潮在线| 日本免费一区二区三区视频观看| 国产视频精品在线| 92国产精品视频| 亚洲欧美日韩中文在线| 精品视频一区在线视频| 国产福利成人在线| 亚洲自拍偷拍色图| 91精品国产乱码久久久久久久久| 8x海外华人永久免费日韩内陆视频| 欧美一级电影免费在线观看| 欧美高清videos高潮hd| 久热精品视频在线观看| 91麻豆国产语对白在线观看| 成人在线视频网站| 日韩av三级在线观看| 欧美午夜丰满在线18影院| 91亚洲精品久久久| 久久久久久久电影一区| 91国产视频在线| 国自在线精品视频| 亚洲精品自拍偷拍| 欧美日韩国产在线播放| 欧美成人免费视频| 亚洲精品美女视频| 成人有码在线视频| 九九热这里只有在线精品视| 亚洲美女免费精品视频在线观看|