日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

C++/C++11中std::exception的使用

發(fā)布時(shí)間:2023/11/27 生活经验 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++/C++11中std::exception的使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

std::exception:標(biāo)準(zhǔn)異常類的基類,其類的聲明在頭文件<exception>中。所有標(biāo)準(zhǔn)庫(kù)的異常類均繼承于此類,因此通過(guò)引用類型可以捕獲所有標(biāo)準(zhǔn)異常。

std::exception類定義了無(wú)參構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、拷貝賦值運(yùn)算符、一個(gè)虛析構(gòu)函數(shù)和一個(gè)名為what的無(wú)參虛成員。其中what函數(shù)返回一個(gè)const char*,該指針指向一個(gè)以null結(jié)尾的字符數(shù)組,并且確保不會(huì)拋出任何異常,該字符串的目的是提供關(guān)于異常的一些文本信息。除析構(gòu)函數(shù)外,其它函數(shù)均通過(guò)關(guān)鍵字noexcept說(shuō)明此函數(shù)不會(huì)拋出異常。

std::exception is the class whose only purpose is to serve as the base class in the exception hierarchy. It has no other uses. In other words, conceptually it is an abstract class (even though it is not defined as abstract class in C++ meaning of the term).

以下內(nèi)容摘自:《C++Primer(Fifth Edition)》

異常是指在程序運(yùn)行時(shí)發(fā)生的反常行為,這些行為超出了函數(shù)正常功能的范圍。典型的異常包括失去數(shù)據(jù)庫(kù)連接以及遇到意外輸入等。當(dāng)程序的某部分檢測(cè)到一個(gè)它無(wú)法處理的問(wèn)題時(shí),需要用到異常處理。此時(shí),檢測(cè)出問(wèn)題的部分應(yīng)該發(fā)出某種信號(hào)以表明程序遇到了故障,無(wú)法繼續(xù)下去了,而且信號(hào)的發(fā)出方無(wú)須知道故障將在何處得到解決。一旦發(fā)出異常信號(hào),檢測(cè)出問(wèn)題的部分也就完成了任務(wù)。

異常提供了一種轉(zhuǎn)移程序控制權(quán)的方式。C++異常處理涉及到三個(gè)關(guān)鍵字:try、catch、throw。關(guān)于這三個(gè)關(guān)鍵字的簡(jiǎn)單使用可以參考: http://blog.csdn.net/fengbingchun/article/details/65939258?

異常處理機(jī)制為程序中異常檢測(cè)和異常處理這兩部分的協(xié)作提供支持。在C++語(yǔ)言中,異常處理包括:

?(1)、throw表達(dá)式(throw expression):異常檢測(cè)部分使用throw表達(dá)式來(lái)表示它遇到了無(wú)法處理的問(wèn)題。throw引發(fā)(raise)異常。throw表達(dá)式包含關(guān)鍵字throw和緊隨其后的一個(gè)表達(dá)式,其中表達(dá)式的類型就是拋出的異常類型。throw表達(dá)式后面通常緊跟一個(gè)分號(hào),從而構(gòu)成一條表達(dá)式語(yǔ)句。拋出異常將終止當(dāng)前的函數(shù),并把控制權(quán)轉(zhuǎn)移給能處理該異常的代碼

(2)、try語(yǔ)句塊(try block):異常處理部分使用try語(yǔ)句塊處理異常。try語(yǔ)句塊以關(guān)鍵字try開(kāi)始,并以一個(gè)或多個(gè)catch子句(catch clause)結(jié)束。try語(yǔ)句塊中代碼拋出的異常通常會(huì)被某個(gè)catch子句處理。因?yàn)閏atch子句處理異常,所以它們也被稱作異常處理代碼(exception handler)。catch子句包括三部分:關(guān)鍵字catch、括號(hào)內(nèi)一個(gè)(可能未命名的)對(duì)象的聲明(稱作異常聲明,exception declaration)以及一個(gè)塊。當(dāng)選中了某個(gè)catch子句處理異常之后,執(zhí)行與之對(duì)應(yīng)的塊。catch一旦完成,程序跳轉(zhuǎn)到try語(yǔ)句塊最后一個(gè)catch子句之后的那條語(yǔ)句繼續(xù)執(zhí)行。一如往常,try語(yǔ)句塊聲明的變量在塊外部無(wú)法訪問(wèn),特別是在catch子句內(nèi)也無(wú)法訪問(wèn)。如果一段程序沒(méi)有try語(yǔ)句塊且發(fā)生了異常,系統(tǒng)會(huì)調(diào)用terminate函數(shù)并終止當(dāng)前程序的執(zhí)行。

(3)、一套異常類(exception class):用于在throw表達(dá)式和相關(guān)的catch子句之間傳遞異常的具體信息。

函數(shù)在尋找處理代碼的過(guò)程中退出:尋找處理代碼的過(guò)程與函數(shù)調(diào)用鏈剛好相反。當(dāng)異常被拋出時(shí),首先搜索拋出該異常的函數(shù)。如果沒(méi)有找到匹配的catch子句,終止該函數(shù),并在調(diào)用該函數(shù)的函數(shù)中繼續(xù)尋找。如果還是沒(méi)有找到匹配的catch子句,這個(gè)新的函數(shù)也被終止,繼續(xù)搜索調(diào)用它的函數(shù)。以此類推,沿著程序的執(zhí)行路徑逐層回退,直到找到適當(dāng)類型的catch子句為止。如果最終還是沒(méi)能找到任何匹配的catch子句,程序轉(zhuǎn)到名為terminate的標(biāo)準(zhǔn)庫(kù)函數(shù)。該函數(shù)的行為與系統(tǒng)有關(guān),一般情況下,執(zhí)行該函數(shù)將導(dǎo)致程序非正常退出。

如果一段程序沒(méi)有try語(yǔ)句塊且發(fā)生了異常,系統(tǒng)會(huì)調(diào)用terminate函數(shù)并終止當(dāng)前程序的執(zhí)行。

那些在異常發(fā)生期間正確執(zhí)行了”清理”工作的程序被稱作異常安全(exception safe)的代碼。編寫異常安全的代碼非常困難。

標(biāo)準(zhǔn)異常:C++標(biāo)準(zhǔn)庫(kù)定義了一組類,用于報(bào)告標(biāo)準(zhǔn)庫(kù)函數(shù)遇到的問(wèn)題。這些異常類也可以在用戶編寫的程序中使用,它們分別定義在4個(gè)頭文件中:

(1)、exception頭文件定義了最通常的異常類std::exception,它只報(bào)告異常的發(fā)生,不提供任何額外的信息。

(2)、stdexcept頭文件定義了幾種常用的異常類,如下:

(3)、new頭文件定義了bad_alloc異常類型。

(4)、type_info頭文件定義了bad_cast異常類型。

標(biāo)準(zhǔn)庫(kù)異常類只定義了幾種運(yùn)算,包括創(chuàng)建或拷貝異常類型的對(duì)象,以及為異常類型的對(duì)象賦值。我們只能以默認(rèn)初始化的方式初始化exception、bad_alloc和bad_cast對(duì)象,不允許為這些對(duì)象提供初始值。其它異常類型的行為則恰恰相反:應(yīng)該使用string對(duì)象或者C風(fēng)格字符串初始化這些類型的對(duì)象,但是不允許使用默認(rèn)初始化的方式。當(dāng)創(chuàng)建此類對(duì)象時(shí),必須提供初始值,該初始值含有錯(cuò)誤相關(guān)的信息。

異常類型只定義了一個(gè)名為what的成員函數(shù),該函數(shù)沒(méi)有任何參數(shù),返回值是一個(gè)指向C風(fēng)格字符串的const char*。該字符串的目的是提供關(guān)于異常的一些文本信息。what函數(shù)返回的C風(fēng)格字符串的內(nèi)容與異常對(duì)象的類型有關(guān)。如果異常類型有一個(gè)字符串初始值,則what返回該字符串。對(duì)于其它無(wú)初始值的異常類型來(lái)說(shuō),what返回的內(nèi)容由編譯器決定。

異常處理(exception handling)機(jī)制允許程序中獨(dú)立開(kāi)發(fā)的部分能夠在運(yùn)行時(shí)就出現(xiàn)的問(wèn)題進(jìn)行通信并做出相應(yīng)的處理。異常使得我們能夠?qū)?wèn)題的檢測(cè)與解決過(guò)程分離開(kāi)來(lái)。程序的一部分負(fù)責(zé)檢測(cè)問(wèn)題的出現(xiàn),然后解決該問(wèn)題的任務(wù)傳遞給程序中的另一部分。檢測(cè)環(huán)節(jié)無(wú)須知道問(wèn)題處理模塊的所有細(xì)節(jié),反之亦然。

拋出異常:在C++語(yǔ)言中,我們通過(guò)拋出(throwing)一條表達(dá)式來(lái)引發(fā)(raised)一個(gè)異常。被拋出的表達(dá)式的類型以及當(dāng)前的調(diào)用鏈共同決定了哪段處理代碼(handler)將被用來(lái)處理該異常。被選中的處理代碼是在調(diào)用鏈中與拋出對(duì)象類型匹配的最近的處理的代碼。其中,根據(jù)拋出對(duì)象的類型和內(nèi)容,程序的異常拋出部分將會(huì)告知異常處理部分到底發(fā)生了什么錯(cuò)誤。

當(dāng)執(zhí)行一個(gè)throw時(shí),跟在throw后面的語(yǔ)句將不再被執(zhí)行,throw語(yǔ)句的用法有點(diǎn)類似于return語(yǔ)句:它通常作為調(diào)節(jié)語(yǔ)句的一部分或者作為某個(gè)函數(shù)的最后(或者唯一)一條語(yǔ)句。相反,程序的控制權(quán)從throw轉(zhuǎn)移到與之匹配的catch模塊。該catch可能是同一個(gè)函數(shù)中的局部catch,也可能位于直接或間接調(diào)用了發(fā)生異常的函數(shù)的另一個(gè)函數(shù)中。

當(dāng)拋出一個(gè)異常后,程序暫停當(dāng)前函數(shù)的執(zhí)行過(guò)程并立即開(kāi)始尋找與異常匹配的catch子句。當(dāng)throw出現(xiàn)在一個(gè)try語(yǔ)句塊內(nèi)時(shí),檢查與該try塊關(guān)聯(lián)的catch子句。如果找到了匹配的catch,就使用該catch處理異常。如果這一步?jīng)]找到匹配的catch且該try語(yǔ)句嵌套在其它try塊中,則繼續(xù)檢查與外層try匹配的catch子句。如果還是找不到匹配的catch,則退出當(dāng)前的函數(shù),在調(diào)用當(dāng)前函數(shù)的外層函數(shù)中繼續(xù)尋找,依次類推。這一過(guò)程被稱為棧展開(kāi)(stack unwinding)過(guò)程。棧展開(kāi)過(guò)程沿著嵌套函數(shù)的調(diào)用鏈不斷查找,直到找到了與異常匹配的catch子句為止:或者也可能一直沒(méi)找到匹配的catch,則退出主函數(shù)后查找過(guò)程終止。

假設(shè)找到了一個(gè)匹配的catch子句,則程序進(jìn)入該子句并執(zhí)行其中的代碼。當(dāng)執(zhí)行完這個(gè)catch子句后,找到與try塊關(guān)聯(lián)的最后一個(gè)catch子句之后的點(diǎn),并從這里繼續(xù)執(zhí)行。如果沒(méi)找到匹配的catch子句,程序?qū)⑼顺觥R驗(yàn)楫惓Mǔ1徽J(rèn)為是妨礙程序正常執(zhí)行的事件,所以一旦引發(fā)了某個(gè)異常,就不能對(duì)它置之不理。當(dāng)找不到匹配的catch時(shí),程序?qū)⒄{(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù)terminate,terminate負(fù)責(zé)終止程序的執(zhí)行過(guò)程。

Note:一個(gè)異常如果沒(méi)有被捕獲,則它將終止當(dāng)前的程序

棧展開(kāi)過(guò)程中對(duì)象被自動(dòng)銷毀:在棧展開(kāi)過(guò)程中,位于調(diào)用鏈上的語(yǔ)句塊可能會(huì)提前退出。通常情況下,程序在這些塊中創(chuàng)建了一些局部對(duì)象。塊退出后它的局部對(duì)象也將隨之銷毀,這條規(guī)則對(duì)于棧展開(kāi)過(guò)程同樣適用。如果在棧展開(kāi)過(guò)程中退出了某個(gè)塊,編譯器將負(fù)責(zé)確保在這個(gè)塊中創(chuàng)建的對(duì)象能被正確地銷毀。如果某個(gè)局部對(duì)象的類型是類類型,則該對(duì)象的析構(gòu)函數(shù)將被自動(dòng)調(diào)用。與往常一樣,編譯器在銷毀內(nèi)置類型的對(duì)象時(shí)不需要做任何事情。

析構(gòu)函數(shù)與異常:析構(gòu)函數(shù)總是會(huì)被執(zhí)行的。出于棧展開(kāi)可能使用析構(gòu)函數(shù)的考慮,析構(gòu)函數(shù)不應(yīng)該拋出不能被它自身處理的異常。換句話說(shuō),如果析構(gòu)函數(shù)需要執(zhí)行某個(gè)可能拋出異常的操作,則該操作應(yīng)該被放置在一個(gè)try語(yǔ)句塊當(dāng)中,并且在析構(gòu)函數(shù)內(nèi)部得到處理。一旦在棧展開(kāi)的過(guò)程中析構(gòu)函數(shù)拋出了異常,并且析構(gòu)函數(shù)自身沒(méi)能捕獲到異常,則程序?qū)⒈唤K止。

異常對(duì)象(exception object):是一種特殊的對(duì)象,編譯器使用異常拋出表達(dá)式來(lái)對(duì)異常對(duì)象進(jìn)行拷貝初始化。因此,throw語(yǔ)句中的表達(dá)式必須擁有完全類型。而且如果該表達(dá)式是類類型的話,則相應(yīng)的類必須含有一個(gè)可訪問(wèn)的析構(gòu)函數(shù)和一個(gè)可訪問(wèn)的拷貝或移動(dòng)構(gòu)造函數(shù)。如果該表達(dá)式是數(shù)組類型或函數(shù)類型,則表達(dá)式將被轉(zhuǎn)換成與之對(duì)應(yīng)的指針類型。異常對(duì)象位于由編譯器管理的空間中,編譯器確保無(wú)論最終調(diào)用的是哪個(gè)catch子句都能訪問(wèn)該空間。當(dāng)異常處理完畢后,異常對(duì)象被銷毀。如果退出了某個(gè)塊,則同時(shí)釋放塊中局部對(duì)象使用的內(nèi)存。因此,拋出一個(gè)指向局部對(duì)象的指針幾乎肯定是一種錯(cuò)誤的行為。出于同樣的原因,從函數(shù)中返回指向局部對(duì)象的指針也是錯(cuò)誤的。當(dāng)我們拋出一條表達(dá)式時(shí),該表達(dá)式的靜態(tài)編譯時(shí)類型決定了異常對(duì)象的類型。如果一條throw表達(dá)式解引用一個(gè)基類指針,而該指針實(shí)際指向的是派生類對(duì)象,則拋出的對(duì)象將被切掉一部分,只有基類部分被拋出。

捕獲異常:catch子句(catch clause)中的異常聲明(exception declaration)看起來(lái)像是只包含一個(gè)形參的函數(shù)形參列表。像在形參列表中一樣,如果catch無(wú)須訪問(wèn)拋出的表達(dá)式的話,則我們可以忽略捕獲形參的名字。聲明的類型決定了處理代碼所能捕獲的異常類型.這個(gè)類型必須是完全類型,它可以是左值引用,但不能是右值引用。

當(dāng)進(jìn)入一個(gè)catch語(yǔ)句后,通過(guò)異常對(duì)象初始化異常聲明中的參數(shù)。和函數(shù)的參數(shù)類似,如果catch的參數(shù)類型是非引用類型,則該參數(shù)是異常對(duì)象的一個(gè)副本,在catch語(yǔ)句內(nèi)改變參數(shù)實(shí)際上改變的是局部副本而非異常對(duì)象本身;相反,如果參數(shù)是引用類型,則和其它引用參數(shù)一樣,該參數(shù)是異常對(duì)象的一個(gè)別名,此時(shí)改變參數(shù)也就是改變異常對(duì)象。

catch的參數(shù)還有一個(gè)特性也與函數(shù)的參數(shù)非常類似:如果catch的參數(shù)是基類類型,則我們可以使用其派生類類型的異常對(duì)象對(duì)其進(jìn)行初始化。此時(shí),如果catch的參數(shù)是非引用類型,則異常對(duì)象將被切掉一部分,這與將派生類對(duì)象以值傳遞的方式傳給一個(gè)普通函數(shù)差不多。另一方面,如果catch的參數(shù)是基類的引用,則該參數(shù)將以常規(guī)方式綁定到異常對(duì)象上。

異常聲明的靜態(tài)類型將決定catch語(yǔ)句所能執(zhí)行的操作。如果catch的參數(shù)是基類類型,則catch無(wú)法使用派生類特有的任何成員。

通常情況下,如果catch接受的異常與某個(gè)繼承體系有關(guān),則最好將該catch的參數(shù)定義成引用類型

查找匹配的處理代碼:在搜索catch語(yǔ)句的過(guò)程中,我們最終找到的catch未必是異常的最佳匹配。相反,挑選出來(lái)的應(yīng)該是第一個(gè)與異常匹配的catch語(yǔ)句。因此,越是專門的catch越應(yīng)該置于整個(gè)catch列表的前端。因?yàn)閏atch語(yǔ)句是按照其出現(xiàn)的順序逐一進(jìn)行匹配的,所以當(dāng)程序使用具有繼承關(guān)系的多個(gè)異常時(shí)必須對(duì)catch語(yǔ)句的順序進(jìn)行組織和管理,使得派生類異常的處理代碼出現(xiàn)在基類異常的處理代碼之前。

與實(shí)參和形參的匹配規(guī)則相比,異常和catch異常聲明的匹配規(guī)則受到更多限制。此時(shí),絕大多數(shù)類型轉(zhuǎn)換都不被允許,除了一些極細(xì)小的差別之外,要求異常的類型和catch聲明的類型是精確匹配的:

(1)、允許在非常量向常量的類型轉(zhuǎn)換,也就是說(shuō),一條非常量對(duì)象的throw語(yǔ)句可以匹配一個(gè)接受常量引用的catch語(yǔ)句。

(2)、允許從派生類向基類的類型轉(zhuǎn)換。

(3)、數(shù)組被轉(zhuǎn)換成指向數(shù)組(元素)類型的指針,函數(shù)被轉(zhuǎn)換成指向該函數(shù)類型的指針。

除此之外,包括標(biāo)準(zhǔn)算術(shù)類型轉(zhuǎn)換和類類型轉(zhuǎn)換在內(nèi),其它所有轉(zhuǎn)換規(guī)則都不能在匹配catch的過(guò)程中使用。

如果在多個(gè)catch語(yǔ)句的類型之間存在著繼承關(guān)系,則我們應(yīng)該把繼承鏈最低端的類(most derived type)放在前面,而將繼承鏈最頂端的類(least derived type)放在后面

重新拋出:有時(shí),一個(gè)單獨(dú)的catch語(yǔ)句不能完整地處理某個(gè)異常。在執(zhí)行了某些校正操作之后,當(dāng)前的catch可能會(huì)決定由調(diào)用鏈更上一層的函數(shù)接著處理異常。一條catch語(yǔ)句通過(guò)重新拋出(rethrowing)的操作將異常傳遞給另外一個(gè)catch語(yǔ)句。這里的重新拋出仍然是一條throw語(yǔ)句,只不過(guò)不包含任何表達(dá)式:throw;

空的throw語(yǔ)句只能出現(xiàn)在catch語(yǔ)句或catch語(yǔ)句直接或間接調(diào)用的函數(shù)之內(nèi)。如果在處理代碼之外的區(qū)域遇到了空throw語(yǔ)句,編譯器將調(diào)用terminate。

一個(gè)重新拋出語(yǔ)句并不指定新的表達(dá)式,而是將當(dāng)前的異常對(duì)象沿著調(diào)用鏈向上傳遞。

很多時(shí)候,catch語(yǔ)句會(huì)改變其參數(shù)的內(nèi)容。如果在改變了參數(shù)的內(nèi)容后catch語(yǔ)句重新拋出異常,則只有當(dāng)catch異常聲明是引用類型時(shí)我們對(duì)參數(shù)所做的改變才會(huì)被保留并繼續(xù)傳播。

捕獲所有異常的處理代碼:為了一次性捕獲所有異常,我們使用省略號(hào)作為異常聲明,這樣的處理代碼稱為捕獲所有異常(catch-all)的處理代碼,形如catch(…)。一條捕獲所有異常的語(yǔ)句可以與任意類型的異常匹配。

catch(…)通常與重新拋出語(yǔ)句一起使用,其中catch執(zhí)行當(dāng)前局部能完成的工作,隨后重新拋出異常。

catch(…)既能單獨(dú)出現(xiàn),也能與其它幾個(gè)catch語(yǔ)句一起出現(xiàn)。

如果catch(…)與其它幾個(gè)catch語(yǔ)句一起出現(xiàn),則catch(…)必須在最后的位置。出現(xiàn)在捕獲所有異常語(yǔ)句后面的catch語(yǔ)句將永遠(yuǎn)不會(huì)被匹配

函數(shù)try語(yǔ)句塊與構(gòu)造函數(shù):通常情況下,程序執(zhí)行的任何時(shí)刻都可能發(fā)生異常,特別是異常可能發(fā)生在處理構(gòu)造函數(shù)初始值的過(guò)程中。構(gòu)造函數(shù)在進(jìn)入其函數(shù)體之前首先執(zhí)行初始值列表。因?yàn)樵诔跏贾盗斜頀伋霎惓r(shí)構(gòu)造函數(shù)體內(nèi)的try語(yǔ)句塊還未生效,所以構(gòu)造函數(shù)體內(nèi)的catch語(yǔ)句無(wú)法處理構(gòu)造函數(shù)初始值列表拋出的異常。要想處理構(gòu)造函數(shù)初始值拋出的異常,我們必須將構(gòu)造函數(shù)寫出函數(shù)try語(yǔ)句塊(也稱為函數(shù)測(cè)試塊,function try block)的形式。函數(shù)try語(yǔ)句塊使得一組catch語(yǔ)句既能處理構(gòu)造函數(shù)體(或析構(gòu)函數(shù)體),也能處理構(gòu)造函數(shù)的初始化過(guò)程(或析構(gòu)函數(shù)的析構(gòu)過(guò)程)。

在初始化構(gòu)造函數(shù)的參數(shù)時(shí)也可能發(fā)生異常,這樣的異常不屬于函數(shù)try語(yǔ)句塊的一部分。函數(shù)try語(yǔ)句塊只能處理構(gòu)造函數(shù)開(kāi)始執(zhí)行后發(fā)生的異常。和其它函數(shù)調(diào)用一樣,如果在參數(shù)初始化的過(guò)程中發(fā)生了異常,則該異常屬于調(diào)用表達(dá)式的一部分,并將在調(diào)用者所在的上下文中處理。

處理構(gòu)造函數(shù)初始值異常的唯一方法是將構(gòu)造函數(shù)寫成函數(shù)try語(yǔ)句塊

noexcept異常說(shuō)明:在C++11新標(biāo)準(zhǔn)中,我們可以通過(guò)提供noexcept說(shuō)明(noexcept specification)指定某個(gè)函數(shù)不會(huì)拋出異常。其形式是關(guān)鍵字noexcept緊跟在函數(shù)的參數(shù)列表后面,用以標(biāo)識(shí)該函數(shù)不會(huì)拋出異常。

對(duì)于一個(gè)函數(shù)來(lái)說(shuō),noexcept說(shuō)明要么出現(xiàn)在該函數(shù)的所有聲明語(yǔ)句和定義語(yǔ)句中,要么一次也不出現(xiàn)。該說(shuō)明應(yīng)該在函數(shù)的尾置返回類型之前。我們也可以在函數(shù)指針的聲明和定義中指定noexcept。在typedef或類型別名中則不能出現(xiàn)noexcept。在成員函數(shù)中,noexcept說(shuō)明符需要跟在const及引用限定符之后,而在final、override或虛函數(shù)的=0之前。

違反異常說(shuō)明:如果一個(gè)函數(shù)在說(shuō)明了noexcept的同時(shí)又含有throw語(yǔ)句或者調(diào)用了可能拋出異常的其它函數(shù),編譯器將順利編譯通過(guò),并不會(huì)因?yàn)檫@種違反異常說(shuō)明的情況而報(bào)錯(cuò)(不排除個(gè)別編譯器會(huì)對(duì)這種用法提出警告)。一旦一個(gè)noexcept函數(shù)拋出了異常,程序就會(huì)調(diào)用terminate以確保遵守不在運(yùn)行時(shí)拋出異常的承諾。noexcept可以用在兩種情況下,一是我們確認(rèn)函數(shù)不會(huì)拋出異常;二是我們根本不知道該如何處理異常。

通常情況下,編譯器不能也不必在編譯時(shí)驗(yàn)證異常說(shuō)明。

如果函數(shù)被設(shè)計(jì)為是throw()的,則意味著該函數(shù)將不會(huì)拋出異常:void f(int) throw();

異常說(shuō)明的實(shí)參:noexcept說(shuō)明符接受一個(gè)可選的實(shí)參,該實(shí)參必須能轉(zhuǎn)換為bool類型:如果實(shí)參是true,則函數(shù)不會(huì)拋出異常;如果實(shí)參是false,則函數(shù)可能拋出異常。

noexcept運(yùn)算符:noexcept說(shuō)明符的實(shí)參常常與noexcept運(yùn)算符(noexcept orerator)混合使用。noexcept運(yùn)算符是一個(gè)一元運(yùn)算符,它的返回值是一個(gè)bool類型的右值常量表達(dá)式,用于表示給定的表達(dá)式是否會(huì)拋出異常。和sizeof類似,noexcept也不會(huì)求其運(yùn)算對(duì)象的值。

noexcept有兩層含義:當(dāng)跟在函數(shù)參數(shù)列表后面時(shí)它是異常說(shuō)明符;而當(dāng)作為noexcept異常說(shuō)明的bool實(shí)參出現(xiàn)時(shí),它是一個(gè)運(yùn)算符

異常說(shuō)明與指針、虛函數(shù)和拷貝控制:盡管noexcept說(shuō)明符不屬于函數(shù)類型的一部分,但是函數(shù)的異常說(shuō)明仍然會(huì)影響函數(shù)的使用。函數(shù)指針及該指針?biāo)傅暮瘮?shù)必須具有一致的異常說(shuō)明。也就是說(shuō),如果我們?yōu)槟硞€(gè)指針做了不拋出異常的說(shuō)明,則該指針將只能指向不拋出異常的函數(shù)。相反,如果我們顯示或隱式地說(shuō)明了指針可能拋出異常,則該指針可以指向任何函數(shù),即使是承諾了不拋出異常的函數(shù)也可以。

如果一個(gè)虛函數(shù)承諾了它不會(huì)拋出異常,則后續(xù)派生出來(lái)的虛函數(shù)也必須做出同樣的承諾;與之相反,如果基類的虛函數(shù)允許拋出異常,則派生類的對(duì)應(yīng)函數(shù)既可以允許拋出異常,也可以不允許拋出異常。

當(dāng)編譯器合成拷貝控制成員時(shí),同時(shí)也生成一個(gè)異常說(shuō)明。如果對(duì)所有成員和基類的所有操作都承諾了不會(huì)拋出異常,則合成的成員是noexcept的。如果合成成員調(diào)用的任意一個(gè)函數(shù)可能拋出異常,則合成的成員是noexcept(false)。而且,如果我們定義了一個(gè)析構(gòu)函數(shù)但是沒(méi)有為它提供異常說(shuō)明,則編譯器將合成一個(gè)。合成的異常說(shuō)明將與假設(shè)由編譯器為類合成析構(gòu)函數(shù)時(shí)所得的異常說(shuō)明一致。

異常類層次:標(biāo)準(zhǔn)庫(kù)異常類構(gòu)成了下圖所示的繼承體系:

類型exception僅僅定義了拷貝構(gòu)造函數(shù)、拷貝賦值運(yùn)算符、一個(gè)虛析構(gòu)函數(shù)和一個(gè)名為what的虛成員。其中what函數(shù)返回一個(gè)const char*,該指針指向一個(gè)以null結(jié)尾的字符數(shù)組,并且確保不會(huì)拋出任何異常。

類exception、bad_cast和bad_alloc定義了默認(rèn)構(gòu)造函數(shù)。類runtime_error和logic_error沒(méi)有默認(rèn)構(gòu)造函數(shù),但是有一個(gè)可以接受C風(fēng)格字符串或者標(biāo)準(zhǔn)庫(kù)string類型實(shí)參的構(gòu)造函數(shù),這些實(shí)參負(fù)責(zé)提供關(guān)于錯(cuò)誤的更多信息。在這些類中,what負(fù)責(zé)返回用于初始化異常對(duì)象的信息。因?yàn)閣hat是虛函數(shù),所以當(dāng)我們捕獲基類的引用時(shí),對(duì)what函數(shù)的調(diào)用將執(zhí)行與異常對(duì)象動(dòng)態(tài)類型對(duì)應(yīng)的版本。

實(shí)際的應(yīng)用程序通常會(huì)自定義exception(或者exception的標(biāo)準(zhǔn)庫(kù)派生類)的派生類以擴(kuò)展其繼承體系。這些面向應(yīng)用的異常類表示了與應(yīng)用相關(guān)的異常條件。和其它繼承體系一樣,異常類也可以看作按照層次關(guān)系組織的。層次越低,表示的異常情況就越特殊。例如,在異常類繼承體系中位于最頂層的通常是exception,exception表示的含義是某處出錯(cuò)了,至于錯(cuò)誤的細(xì)節(jié)則未作描述。

繼承體系的第二層將exception劃分為兩個(gè)大的類別:運(yùn)行時(shí)錯(cuò)誤和邏輯錯(cuò)誤。運(yùn)行時(shí)錯(cuò)誤表示的是只有在程序運(yùn)行時(shí)才能檢測(cè)到的錯(cuò)誤;而邏輯錯(cuò)誤一般指的是我們可以在程序代碼中發(fā)現(xiàn)的錯(cuò)誤。

下面是從其他文章中copy的std::exception測(cè)試代碼,詳細(xì)內(nèi)容介紹可以參考對(duì)應(yīng)的reference:

#include "exception.hpp"
#include <exception>
#include <typeinfo>
#include <iostream>
#include <utility>
#include <cstring>// Fix: error C3646: 'noexcept' : unknown override specifier
#ifndef _MSC_VER
#define NOEXCEPT noexcept
#else
#define NOEXCEPT
#endifnamespace exception_ {
/
// reference: http://www.cplusplus.com/reference/exception/exception/
class Polymorphic { virtual void member(){}
};int test_exception_1()
{try {Polymorphic * pb = 0;typeid(*pb); // throws a bad_typeid exception} catch (std::exception& e) { // std::std::bad_typeidstd::cerr << "exception caught: " << e.what() << '\n'; // exception caught: Attempted a typeid of Null pointer!}return 0;
}struct ooops : std::exception {const char* what()  const NOEXCEPT /*noexcept*/ override{ return "Ooops!\n"; }
};int test_exception_2()
{ooops e;std::exception* p = &e;try {throw e;       // throwing copy-constructs: ooops(e)} catch (std::exception& ex) {std::cout << ex.what(); // 0oops!}try {throw *p;      // throwing copy-constructs: std::exception(*p)} catch (std::exception& ex) {std::cout << ex.what(); // Unknown exception}return 0;
}// text_exception uses a dynamically-allocated internal c-string for what():
class text_exception : public std::exception {
public:text_exception(const char* text) {text_ = new char[std::strlen(text) + 1];std::strcpy(text_, text);}text_exception(const text_exception& e) {text_ = new char[std::strlen(e.text_) + 1];std::strcpy(text_, e.text_);}~text_exception() NOEXCEPT /*throw()*/ {delete[] text_;}const char* what() const NOEXCEPT /*noexcept*/ override { return text_; }private:char* text_;
};int test_exception_3()
{try {throw text_exception("custom text\n");} catch (std::exception& ex) {std::cout << ex.what(); // custom text}return 0;
}} // namespace exception_

GitHub: https://github.com/fengbingchun/Messy_Test

?

總結(jié)

以上是生活随笔為你收集整理的C++/C++11中std::exception的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

五月婷婷网站 | 视频一区二区免费 | av大片免费 | 国产激情小视频在线观看 | 免费在线成人av电影 | 日本久久久久久久久久久 | av观看免费在线 | 免费日韩一区二区三区 | 国产精品人成电影在线观看 | 69av在线播放 | 色国产精品一区在线观看 | 五月天中文在线 | 五月天.com| 超碰免费观看 | 国产精品成人自产拍在线观看 | 成人在线黄色电影 | 奇米影视999 | 五月开心婷婷网 | 综合久久影院 | 国产色视频网站 | 麻豆91精品视频 | 青青草久草在线 | 91看片淫黄大片在线播放 | 丝袜美腿在线 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久福利在线 | 亚洲黄网址 | 一区二区三区免费在线 | 在线99| 亚洲精品ww| 中文字幕在线视频网站 | 91精品国产91p65 | 色婷婷色 | 国产亚洲精品成人av久久影院 | 亚洲欧美日韩国产一区二区 | 精品国产一二三四区 | 亚洲视屏在线播放 | japanesefreesex中国少妇 | www日韩视频 | 99久热在线精品视频观看 | 亚洲国产精品激情在线观看 | 中文字幕在线免费观看视频 | 黄色毛片一级 | 天堂网一区 | 草久久影院 | 欧美在线18| 天天操天天干天天操天天干 | 日韩黄色影院 | 奇米影视四色8888 | av官网在线| 国产精品午夜免费福利视频 | 久草爱 | 欧美一二在线 | 色吧av色av | 日韩美av在线 | 91成人在线免费观看 | 日批视频国产 | 欧美人牲| 久久色视频| 综合色综合| 国产最新视频在线观看 | 中文字幕在线人 | 久久这里只有精品1 | 在线免费黄色av | 99久久精品免费视频 | 91av电影网 | 国产精品黑丝在线观看 | 99r国产精品| 九九视频精品在线 | av电影免费在线播放 | 欧美影院久久 | 亚洲成人免费在线观看 | 开心激情综合网 | 日韩欧美在线综合网 | 色福利网站 | 亚洲激情在线观看 | 久久资源在线 | 精品a在线| 在线观看国产亚洲 | 91视频国产高清 | 国产成人三级在线观看 | 欧美日本中文字幕 | 激情综合网五月婷婷 | 久久久精品二区 | 国产亚洲亚洲 | 欧美日产一区 | 国产精品自产拍在线观看蜜 | 一级黄毛片 | 欧美国产日韩一区二区 | 成人av电影免费在线播放 | 超碰在线人 | 中文字幕亚洲精品日韩 | а天堂中文最新一区二区三区 | 久久五月激情 | 久久久久久久久久久成人 | 久久狠狠干 | 亚洲免费在线播放视频 | 国产亚洲高清视频 | 91黄色在线看 | 免费观看第二部31集 | 色多多污污在线观看 | 国产一线在线 | 久久久久久久久久亚洲精品 | 缴情综合网五月天 | 91精品国产91久久久久福利 | 狠狠色狠狠综合久久 | 亚洲高清精品在线 | 精品福利网| 超碰在线98| a精品视频 | 日本婷婷色 | 人人看人人草 | 午夜视频免费 | 激情欧美一区二区三区 | 99热 精品在线 | 久久精品男人的天堂 | 中文字幕色在线视频 | 久久激情小说 | 色综合亚洲精品激情狠狠 | 欧美aa在线 | 亚洲欧美国内爽妇网 | 欧美一级xxxx | 97电影网站 | 国产一区在线视频播放 | 99热这里只有精品久久 | 婷婷婷国产在线视频 | 亚洲成人黄色av | 国产黄色免费看 | 不卡av电影在线 | av爱干| 亚洲精品国产自产拍在线观看 | 亚洲伊人婷婷 | 欧美精品久久久久久久久久丰满 | 国内综合精品午夜久久资源 | 深爱激情站 | 国产午夜亚洲精品 | 国产1级视频| 亚洲精品国产精品国自产 | 国产日韩欧美视频在线观看 | 337p日本大胆噜噜噜噜 | 欧美日韩国产一区二区在线观看 | 国产日韩欧美在线影视 | 天天操一操 | 一级a毛片高清视频 | 欧美成a人片在线观看久 | 91久久一区二区 | 欧美精品在线视频观看 | 最近中文字幕免费av | 在线观看91久久久久久 | 日韩av成人在线 | 国产精品免费成人 | 日本在线观看一区 | 久久综合九九 | 中文字幕免费观看全部电影 | 96久久精品 | 久久久久久国产精品久久 | 久久亚洲区| 亚洲理论视频 | 91福利专区| 天天色天天综合网 | 国产欧美精品在线观看 | 超碰97在线看 | 色香蕉在线视频 | 黄色毛片在线观看 | 天天操天天色天天射 | 天天射天天干天天爽 | 久久久在线免费观看 | 日韩精品一区二区三区外面 | 在线看片91| 二区三区在线观看 | 国产精品久久久久三级 | 国产免费一区二区三区最新 | 国内精品亚洲 | 亚洲一区在线看 | 日韩黄色在线电影 | 天天操夜夜操 | 中文在线a∨在线 | 97精品国产91久久久久久 | 麻豆精品视频在线观看免费 | 婷婷www| 四虎在线视频免费观看 | 国产视频99 | 国产精品女教师 | 国产精品国产三级国产 | 亚洲精品黄网站 | 国产小视频你懂的在线 | 成人一级免费视频 | 亚洲国产精品成人综合 | 免费看一及片 | 99国产在线观看 | 93久久精品日日躁夜夜躁欧美 | 91传媒免费在线观看 | 中文字幕一区二区三区乱码不卡 | 高清久久久| 国产成人av网站 | 99久久国产免费,99久久国产免费大片 | 天天操天天玩 | 欧美成人h版在线观看 | 激情婷婷av| 91福利国产在线观看 | 亚洲极色| 欧美一区二区伦理片 | 久久久久免费精品视频 | 国产视频一区二区在线观看 | 亚洲精选在线 | 热久久这里只有精品 | 国产中文字幕在线免费观看 | 久久精品毛片 | 精品国产1区2区 | 国产精品久久久久久久久久了 | 日韩在线免费播放 | 久久久www成人免费毛片 | 99精品乱码国产在线观看 | 日韩手机在线 | 青青久视频 | 成年人在线观看免费视频 | 日韩在线短视频 | 欧美成人xxxxxxxx | 夜夜躁狠狠燥 | 一区久久久 | 成人av免费在线 | 日韩天天干 | 国产一级一片免费播放放 | 中文理论片 | 国产精品久久久亚洲 | 一区二区三区日韩视频在线观看 | 午夜精品一区二区三区免费视频 | av性在线| 丁香婷婷社区 | 成人免费看视频 | 成人av免费电影 | 免费观看久久久 | 91精品小视频 | 91精品国自产在线观看 | av色图天堂网 | 国产99亚洲 | 日韩欧美中文 | 五月天视频网站 | 色综合久久久久久中文网 | 98超碰人人 | 中文字幕在线观看网 | av中文字幕在线免费观看 | 99久久久久久久久 | 中文字幕日韩一区二区三区不卡 | 在线网站黄 | 在线播放第一页 | 男女精品久久 | 操操碰 | 偷拍福利视频一区二区三区 | 黄色在线视频网址 | 日本色小说视频 | 欧美日本高清视频 | 精品国产精品久久一区免费式 | 欧美日韩调教 | 日本大片免费观看在线 | 欧美日本不卡 | 中文字幕av有码 | 成人高清av在线 | 久久99影院 | 久久激情五月丁香伊人 | 麻豆影视网 | 成人三级av| 玖玖视频国产 | 99在线精品观看 | 九九热精品视频在线播放 | 99在线观看精品 | 日韩高清www | 日本久久精品视频 | 久久手机免费视频 | 精品字幕在线 | 高清一区二区 | 探花视频在线观看 | 日韩a在线播放 | 日韩免费不卡av | 丝袜美腿在线 | 亚洲色五月 | 99麻豆视频 | 美女黄网站视频免费 | 91黄视频在线观看 | 久久视频网| 精品国产乱码久久久久久三级人 | 久久精品99国产 | 中文字幕av最新 | 丁香五月亚洲综合在线 | 看片在线亚洲 | 免费av影视 | 特级黄色片免费看 | 91成人精品 | 国产黄色免费看 | 免费 在线 中文 日本 | 久青草国产在线 | 久久久久亚洲精品国产 | 日本丶国产丶欧美色综合 | 97在线看| 色网站视频 | 亚在线播放中文视频 | 精品一区二区在线观看 | 国产成人精品一区二三区 | 日本性生活免费看 | 欧美性高跟鞋xxxxhd | 亚洲天堂网在线观看视频 | 久久66热这里只有精品 | 久久精品视频在线观看 | 精品国产美女 | 在线日本看片免费人成视久网 | 国产精品免费视频久久久 | 日韩av免费在线电影 | 国产精品免费久久久久影院仙踪林 | 中国黄色一级大片 | 日韩久久电影 | 亚洲国产欧美在线看片xxoo | 97精品一区| 天天操夜夜拍 | 啪一啪在线 | 国产日产在线观看 | 麻花豆传媒一二三产区 | 久久这里有精品 | 成人av一区二区兰花在线播放 | av天天在线观看 | 99免费在线观看视频 | 久久国产精品二国产精品中国洋人 | 最近中文字幕mv免费高清在线 | 中文字幕精品一区二区精品 | 激情视频区| 九九热中文字幕 | 999久久国产 | 久久国精品| 色在线网站 | 欧美日韩国产高清视频 | 91香蕉视频色版 | 主播av在线 | 国产久草在线 | 久草视频在线观 | 久久久久二区 | 天天躁日日躁狠狠 | 黄色福利视频网站 | 天天色天天操天天爽 | 亚洲精品中文字幕视频 | 婷婷国产v亚洲v欧美久久 | 特级西西444www高清大视频 | 九九免费在线观看 | 三上悠亚一区二区在线观看 | 五月婷婷在线视频观看 | 国产麻豆剧果冻传媒视频播放量 | 色av资源网 | 成人h电影在线观看 | 国产高清久久久久 | 岛国av在线 | www91在线观看| 久久成人综合视频 | 欧美少妇18p| 亚洲乱亚洲乱妇 | 99r在线视频 | 久久久久福利视频 | 在线播放一区二区三区 | 高清在线观看av | www.色午夜.com | 久久国产网站 | 国产精品免费久久久久久 | 中文字幕在线观看第三页 | 在线播放日韩av | 四川妇女搡bbbb搡bbbb搡 | 国产精品第| av在线免费网 | 国产精品女同一区二区三区久久夜 | 免费视频 三区 | av丝袜美腿 | 日韩丝袜在线观看 | 午夜精品久久久久久久99 | 国产精品99久久久 | 国产精品免费久久久 | 久草色在线观看 | 911精品美国片911久久久 | 99精品在线视频播放 | 丰满少妇对白在线偷拍 | 波多野结衣一区二区三区中文字幕 | 色综合色综合久久综合频道88 | h动漫中文字幕 | 中文在线中文a | 肉色欧美久久久久久久免费看 | 狠狠躁夜夜躁人人爽视频 | 欧美动漫一区二区三区 | 97精品国产97久久久久久粉红 | 午夜久久影视 | 成人avav | 成人蜜桃视频 | 国产高清在线精品 | 欧美精品久久久久久久亚洲调教 | 成人h视频| 日韩在线在线 | 五月婷婷激情综合 | 国产精品久久久久久69 | 国产精品久久久久久久久蜜臀 | 91成熟丰满女人少妇 | 日韩精品久久一区二区三区 | av黄免费看 | 国产视频第二页 | 91视频专区| 久草免费手机视频 | 欧美色综合久久 | 亚洲在线视频免费 | 麻豆国产视频下载 | 亚洲国产精品第一区二区 | 一本一本久久a久久精品综合妖精 | 黄在线| 在线观看黄污 | 欧美a视频在线观看 | 综合网成人 | 天天干天天射天天插 | 91传媒在线 | www.天天操.com | 国产在线视频不卡 | 国产一区在线视频播放 | 日韩av偷拍| 精品一区二区视频 | 天天干天天操人体 | 91中文在线观看 | 久久伊人爱 | 国产香蕉视频在线播放 | 成人免费视频网站在线观看 | 在线免费观看麻豆视频 | 99精品免费久久久久久久久 | 国产高清精品在线观看 | 日本久久久久久久久久 | 9在线观看免费 | 亚洲午夜精 | 最近中文字幕大全中文字幕免费 | 欧美极品少妇xbxb性爽爽视频 | 99re8这里有精品热视频免费 | 欧美日韩视频观看 | 日韩在线免费 | 91久久久久久国产精品 | 久久99国产精品免费 | 免费黄色网址大全 | 日本资源中文字幕在线 | 亚洲黄色免费在线 | 欧美作爱视频 | 日本性视频 | 精品国内自产拍在线观看视频 | 久久亚洲热 | 国产中文字幕亚洲 | 午夜av大片| 午夜久久视频 | 在线看毛片网站 | 九月婷婷色 | 中文字幕av在线电影 | 国产一区av在线 | 日韩在线视频网站 | 91看国产| 九色91av| 成人黄色小视频 | 亚洲伊人第一页 | 日韩欧美v| 欧美色操 | 亚洲永久精品一区 | 日日草视频 | 国产精品亚洲a | 久久久久国产视频 | 黄色片视频在线观看 | 粉嫩av一区二区三区入口 | 97超视频在线观看 | 五月综合网| 欧美大片大全 | 中文字幕在线视频一区二区 | 色在线免费视频 | 99热999| 久久99精品久久久久久秒播蜜臀 | 日韩中文字幕一区 | 中文字幕电影一区 | 96精品视频 | 色 免费观看 | 国产成人99av超碰超爽 | 国产精品s色 | 欧美日韩电影在线播放 | 在线免费中文字幕 | 中文高清av | 91精品久久香蕉国产线看观看 | 人人干人人超 | 日韩av视屏在线观看 | 亚洲免费在线播放视频 | 欧美视频99| 在线观看自拍 | 日韩亚洲精品电影 | 午夜精品久久久99热福利 | 亚洲人精品午夜 | 亚洲精品1区2区3区 超碰成人网 | 免费精品在线 | 91av在线免费播放 | 97人人模人人爽人人喊网 | 一区二区三区国产欧美 | 色综合天 | 久久99国产一区二区三区 | 天天看天天干 | 99这里都是精品 | 99精品在线视频观看 | 五月婷婷久 | 视频一区二区三区视频 | 五月导航 | 国产.精品.日韩.另类.中文.在线.播放 | 91精品久久久久 | 欧美性色19p| 99国产精品视频免费观看一公开 | 91九色精品国产 | 天天色婷婷 | 国产亚洲一区二区三区 | 国产一级片毛片 | 人人射| 免费av在线网站 | 91精品久久久久 | 欧美一二三在线 | 亚洲精品乱码白浆高清久久久久久 | 国产一级在线视频 | 日本最新中文字幕 | 久久无码精品一区二区三区 | 亚洲午夜精品电影 | 欧美三级免费 | 国产视频精选 | 91精品久久久久久综合五月天 | 在线免费高清一区二区三区 | 色婷婷激情五月 | 国产亚洲在线 | 久草网视频在线观看 | 久久成人精品电影 | 丁香激情婷婷 | 91精品办公室少妇高潮对白 | 国产人免费人成免费视频 | 国产精品1000| 欧美韩国日本在线 | 国色天香在线观看 | 91av片 | 超碰日韩| 国产高清在线免费视频 | 精品国产一区二区三区久久影院 | 一区二区成人国产精品 | 欧美一级高清片 | 日本性xxxxx 亚洲精品午夜久久久 | 国产一级黄色免费看 | 国产精品女主播一区二区三区 | 国产中文视频 | 国产中文字幕三区 | 日韩高清免费电影 | 成人av视屏 | 免费av免费观看 | 三级a毛片 | 91亚洲狠狠婷婷综合久久久 | 欧美精品乱码久久久久久按摩 | 欧美91片 | 亚洲国产精品成人精品 | 久久激情精品 | 精品亚洲一区二区 | 美女网站视频免费黄 | 69av久久 | 国产另类av | 日日操日日干 | 99久久99久久免费精品蜜臀 | 色噜噜狠狠色综合中国 | 欧美黄色软件 | 亚洲爽爽网 | 国产一级做a爱片久久毛片a | 青草视频在线 | 亚洲成人av在线播放 | 欧美在线视频一区二区三区 | 日韩精品在线视频 | 一区二区在线不卡 | 久草资源免费 | 青青草国产精品 | 黄色三级免费观看 | 欧美另类性 | 免费欧美高清视频 | 中文字幕超清在线免费 | 中文在线a∨在线 | 成年人免费在线 | 亚洲午夜久久久综合37日本 | 91精品国产99久久久久久红楼 | 国产精品精品国产婷婷这里av | 午夜精品久久久久久久99热影院 | 69国产盗摄一区二区三区五区 | 亚洲精品视频网站在线观看 | 在线天堂中文www视软件 | 操老逼免费视频 | 中文字幕在线观看资源 | 一级α片| 国产一区成人在线 | 国产成人av网 | 午夜精品久久久久久久99 | 毛片www| 中文字幕欧美日韩va免费视频 | 国内少妇自拍视频一区 | 丁香六月国产 | 五月婷婷综合久久 | 五月婷婷爱 | 高清在线观看av | 国产黑丝一区二区三区 | 亚洲爽爽网 | 97国产情侣爱久久免费观看 | 色爽网站 | 狠狠色噜噜狠狠 | 久久国产精品99久久久久久丝袜 | 欧美一区二区三区不卡 | 久久视频这里有久久精品视频11 | 在线观看国产亚洲 | 蜜桃av综合网 | 亚洲国产av精品毛片鲁大师 | 少妇高潮流白浆在线观看 | 日韩中文在线播放 | 久久久久成人精品免费播放动漫 | 91免费观看视频网站 | 国产成人精品福利 | 久久影院一区 | 久久久久久久久久久久久久av | 亚洲成人一二三 | 国产直播av | 亚洲女人av| 国产欧美三级 | 五月天亚洲综合 | 亚洲精品短视频 | 久久久久国产一区二区三区 | av成人在线电影 | 国产精品福利午夜在线观看 | 国产中文字幕国产 | 日韩在线一区二区免费 | 国产 在线 日韩 | 激情五月***国产精品 | 狠狠狠色丁香综合久久天下网 | 丰满少妇在线 | 精品国精品自拍自在线 | 亚洲影视九九影院在线观看 | 97国产精品久久 | 在线电影日韩 | av中文字幕在线看 | 成人午夜电影网站 | 97热视频 | 日本精品久久久久中文字幕 | 亚洲免费在线播放视频 | 久久tv| 日韩av区 | 91精品秘密在线观看 | 午夜久久久久久久 | 国产精品第二十页 | 一本一本久久a久久精品综合妖精 | 国产又粗又猛又黄又爽的视频 | 亚洲精品99久久久久中文字幕 | 亚洲欧美日韩一级 | 欧美老人xxxx18| 91爱爱电影 | 久久综合欧美 | 亚洲高清视频一区二区三区 | 久久人人爽人人片 | 天天色综合天天 | 99爱视频 | 日韩电影黄色 | 久久99精品久久久久久秒播蜜臀 | 中文超碰字幕 | 国产中文字幕视频 | 福利视频午夜 | 国产精品久久久久久久久久不蜜月 | 国产日韩欧美视频 | 久久精品综合网 | 99热这里是精品 | 91在线视频免费 | 在线观看免费av网站 | 91在线播放国产 | 国产一区在线观看视频 | 久久影院亚洲 | 精品国产亚洲日本 | 91精品国产成人www | 天天色天天射综合网 | 超碰.com| 国产成人精品三级 | 福利视频第一页 | 国产精品久久久久一区二区三区 | 精品亚洲网 | 99久久久久久久久久 | 9999精品免费视频 | www.狠狠色 | 欧美少妇xxxxxx| 日韩欧美在线综合网 | 久久久精品免费看 | 99在线观看精品 | 亚洲日本成人 | 亚洲精品视频免费看 | 激情av综合 | 天天久久综合 | 在线看国产日韩 | 免费国产在线观看 | 五月婷婷天堂 | 免费在线观看日韩 | 午夜精品视频免费在线观看 | 免费亚洲一区二区 | 日韩高清成人 | av福利在线播放 | 91九色国产蝌蚪 | 日韩欧美在线综合网 | 久精品视频免费观看2 | 黄色大片免费网站 | 国产精品成人av在线 | 在线观看成人国产 | 成人av免费在线播放 | 九九热精品国产 | 欧美精品做受xxx性少妇 | 亚洲精品国产综合久久 | 亚洲欧洲日韩在线观看 | 蜜臀久久99精品久久久无需会员 | 伊人色综合网 | 很黄很黄的网站免费的 | 日韩一级电影网站 | 国产一区二区在线免费观看 | 四虎成人精品 | 久操97 | av成人在线网站 | 欧美另类69 | 美女福利视频 | 国产精品白丝jk白祙 | 波多野结衣精品在线 | 中文字幕二区三区 | 激情黄色一级片 | 国产我不卡 | 天天操婷婷 | 国产又粗又猛又爽 | 伊人中文在线 | 色88久久| 99re久久资源最新地址 | 亚洲国产精品成人va在线观看 | 欧美亚洲另类在线视频 | www.色的| 国产麻豆电影 | 国产综合在线观看视频 | 青青色影院 | 日本爱爱免费视频 | 久久久色| 日韩欧美视频在线观看免费 | 高清一区二区 | 久久人人看| 天天插天天射 | 在线免费观看羞羞视频 | 2019中文 | 午夜视频不卡 | 九九九九精品九九九九 | 久久成人精品电影 | 亚洲九九九 | 亚洲精品观看 | 成人一级免费视频 | 午夜的福利 | 欧美国产一区在线 | 欧美日韩久久 | 日韩成人精品一区二区 | 日韩视频1区 | 国内亚洲精品 | 国产精久久久久久久 | 日本丰满少妇免费一区 | 中国一级片免费看 | 97国产在线视频 | 热久精品 | 黄色国产精品 | 久久久久一区二区三区 | 九九九免费视频 | 色综合亚洲精品激情狠狠 | 成人在线黄色电影 | 高清国产午夜精品久久久久久 | 麻豆一精品传二传媒短视频 | 国内外成人在线视频 | 成x99人av在线www | 青青河边草观看完整版高清 | 四虎最新域名 | 黄网在线免费观看 | 久久伦理电影网 | 色爱区综合激月婷婷 | 欧美精品中文在线免费观看 | 国产999视频在线观看 | 欧美日韩高清一区二区 | 日韩国产欧美在线视频 | 欧美性色综合 | 亚洲综合视频在线播放 | 中文字幕在线观看第一区 | 亚洲精品影院在线观看 | 国产免费一区二区三区最新 | 天天做天天爱天天爽综合网 | 99视频精品 | 国产精品v欧美精品v日韩 | 国产不卡视频在线播放 | 特级a毛片| 亚洲老妇xxxxxx | 91网在线| www.伊人网 | 91精品国产综合久久婷婷香蕉 | 最近中文字幕免费av | 国产成人不卡 | 亚洲日韩精品欧美一区二区 | 视频国产一区二区三区 | 久久一区二区三区超碰国产精品 | 91禁在线观看 | 波多野结衣精品视频 | 四虎成人精品永久免费av | 超碰在线日韩 | 色婷婷狠狠 | 一级黄色大片 | 久久久久久久久久伊人 | 五月天色中色 | 视频一区二区在线 | 国产美女在线精品免费观看 | 黄色大片免费网站 | 99视频国产精品免费观看 | 成年人免费在线播放 | 精品国模一区二区 | 97在线观看免费高清完整版在线观看 | 亚洲国产69 | 岛国一区在线 | 国产1区2区 | 天天爱天天操天天爽 | 麻豆视频在线播放 | 精品久久久久久久久久岛国gif | 中文字幕电影一区 | 婷婷久久精品 | 亚洲黄色高清 | 国产午夜精品一区 | 精品国产伦一区二区三区观看说明 | 免费色视频网站 | 超碰在线亚洲 | 91福利免费| 国产91精品高清一区二区三区 | 亚洲精品1区2区3区 超碰成人网 | av不卡免费在线观看 | 国产成人精品在线观看 | 国内精品99 | av高清网站在线观看 | 欧美精品一级视频 | 国产人成看黄久久久久久久久 | 亚洲精品乱码 | 久久午夜色播影院免费高清 | 在线а√天堂中文官网 | 久久成人国产精品 | 欧美色婷 | 在线观看精品黄av片免费 | 最新日韩视频在线观看 | 精品福利视频在线 | 精品自拍sae8—视频 | 玖玖在线看 | 亚洲码国产日韩欧美高潮在线播放 | 久久久久久久久久伊人 | 国产在线a| 91桃色在线免费观看 | 91精彩在线视频 | 欧美做受69| 日韩精品一区二区三区外面 | www.av在线播放 | 成人免费观看视频网站 | 青青久视频 | 天天综合久久综合 | 永久精品视频 | 亚洲国产视频直播 | 欧美性黄网官网 | 欧美一二区视频 | 国产精品毛片久久久久久久 | 日韩精品久久一区二区三区 | 欧美在线1区 | 国产精品国产三级国产aⅴ9色 | av超碰在线观看 | 一区三区视频在线观看 | 亚洲伊人色 | 操操爽| av成人免费观看 | 色五丁香| 色视频国产直接看 | 国产99久久久精品 | 99久久精品电影 | 四虎8848免费高清在线观看 | 国产美女搞久久 | 欧美最猛性xxxxx(亚洲精品) | 日韩中文免费视频 | 91精品免费| 欧美日韩大片在线观看 | 91视频免费播放 | 91人人爽久久涩噜噜噜 | 在线观看理论 | 六月丁香六月婷婷 | 亚洲综合色av | 91丨九色丨高潮丰满 | 中文字幕在线播放日韩 | 精品不卡av | 成人三级网站在线观看 | 中文字幕精品一区久久久久 | 成人一级免费视频 | av免费网站在线观看 | 91精品看片 | 久久久久综合视频 | 一区二区中文字幕在线 | 福利在线看片 | 亚洲精选在线观看 | 精品视频成人 | 色综合天天色综合 | 天天射天天射天天 | 五月在线 | 美女久久久久久 | 久久久免费看视频 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | avav片| 免费a视频在线 | 天天综合网在线观看 | 国产中文字幕视频在线观看 | 久久xx视频 | 亚洲精品国产日韩 | 久久久久久久国产精品视频 | 免费男女网站 | 国产综合片| 2022中文字幕在线观看 | 中文字幕av电影下载 | 最新av网址大全 | 免费在线观看污 | 亚洲精品乱码久久久一二三 | 91尤物在线播放 | 国内精品久久久久久久久 | 色综合久久88色综合天天人守婷 | 亚洲久草在线 | 久久国产一二区 | 五月天久久婷 | 99视频这里只有 | 国产精品久久久久影视 | 国产一性一爱一乱一交 | 97香蕉久久超级碰碰高清版 | 国产91学生粉嫩喷水 | 亚洲精品中文字幕在线观看 | 97国产人人 | 欧美视频一区二 | 色综合www| 4438全国亚洲精品在线观看视频 | 在线91av| 久久综合九色综合久99 | 天天操伊人 | 国产精品免费久久久久久 | 亚洲视频aaa | 一区二区三区四区不卡 | 亚洲天天干 | 久久影院午夜论 | 午夜久久久久久久久久久 | 天堂在线视频免费观看 | 国产精品theporn| 亚洲色图av | 国产一区在线不卡 | 久久99国产精品久久99 | 国产高清无av久久 | 色久网| 欧美午夜性 | 99麻豆久久久国产精品免费 | 天天操天天干天天操天天干 | 国产精品欧美久久久久三级 | 久久久网页 | 激情网站网址 | 片网站 | 亚洲年轻女教师毛茸茸 | 亚洲开心激情 | 国产欧美高清 | 色婷婷激情网 | 不卡的一区二区三区 | 成年人免费看的视频 | 色婷婷国产精品一区在线观看 | 成年人在线免费看片 | 天天操网址 | 人人看看人人 | 国产91勾搭技师精品 | 日韩午夜电影网 | 欧美国产日韩一区二区三区 | 粉嫩av一区二区三区四区在线观看 | 午夜精品一区二区三区四区 | www夜夜操| 国产精品第十页 | av在线播放网址 | 天堂资源在线观看视频 | 亚洲最新av在线 | 精品一区二区三区久久久 | 中文视频在线播放 | 激情五月婷婷网 | 456免费视频 | 国产中文a | 成人在线视频在线观看 | 国产探花在线看 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 欧美91精品| 国产精品网红直播 | 久草视频免费 | 黄色在线观看免费网站 | 欧美在线观看视频 | 免费高清在线视频一区· | 久久免费视频在线观看6 | 人人cao | 国产精品视频最多的网站 | 欧美日韩伦理一区 | 日韩欧美视频在线观看免费 | 丁香久久久 | 国产视频精品免费播放 | 国产伦精品一区二区三区免费 | 在线观看国产福利片 | 久久精品一二三区白丝高潮 | 美女啪啪图片 | 国产午夜三级一区二区三桃花影视 | 亚洲黄色免费观看 | 国产一级免费视频 | 国产精品一区二区电影 | av最新资源 |