C 異常機制

2021-07-04 20:08:23 字數 1715 閱讀 3312

一、簡單例項

異常是通過丟擲物件而引發的,丟擲物件的型別決定應該啟用那個處理**,即catch中的語句;被處理**是呼叫鏈中與該丟擲物件型別匹配,並且離丟擲異常位置最近的那乙個;例如:

void test()

int main()catch(string& e)

t value()

void print()

void push(const t &data) ; //壓棧

t pop(); //彈出,top--

t getelem(int i) //返回指定元素,top不變

void makeempty() //清空棧

bool isempty() const //判棧空

bool isfull() const //判棧滿

void printstack(); //輸出棧內所有資料

};template

stack::stack(int maxs)

template

void stack::printstack()

template

t stack::pop()

int main(), b[9]=,i;

stackistack(8);

trycatch(pushonfull&eobj)

trycatch(poponempty&eobj)

cout

<<"出棧次序為:";

for(i=0;i<9;i++) cout

<'\t';

cout

0;}

三、虛函式是類層次結構中多型性的基本手段,異常類層次結構中也可以定義虛函式

#include

using

namespace

std;

class excp

void push(const

int &data); //壓棧

int pop(); //彈出,top--

int getelem(int i) //返回棧頂元素,top不變

void makeempty() //清空棧

bool isempty() const //判棧空

bool isfull() const //判棧滿

void printstack(); //輸出棧內所有資料

};stack::stack(int maxs)

void stack::printstack()

int stack::pop()

int main(), b[9]=,i;

stack istack(8);

trycatch(excp&eobj)

trycatch(excp&eobj)

for(i=0;i<9;i++) cout

<'\t';

cout

0;}

更加具體的資訊可以訪問:

C 異常 異常機制

c 異常是丟程式執行過程中發生的異常情況 例如被0除 的一種響應。異常提供了將控制權從程式的乙個部分傳遞到另一部分的途徑。對異常的處理有3個組成部分 引發異常 使用處理程式捕獲異常 使用try塊。程式在出現問題時將引發異常。throw語句實際上是跳轉,即命令程式跳到另一條語句。throw關鍵字表示引...

C 異常機制

在c 中的函式呼叫中,是用棧來存放其中資料物件。表1.1 我們結合這張表,來簡單介紹函式的棧結構。其中每乙個函式在入棧的時候,編譯器會自動新增額外的資料結構,這裡的exception registration就是被額外新增進來的。對於這個結構體我們稍後解釋,首先來介紹函式的基本結構。從這張圖中可以清...

C 異常機制

1 異常的丟擲 classmyerror voiddo error intmain 上面的例子中,通過throw丟擲了乙個異常類的例項,這個異常類,可以是任何乙個自定義的類,通過例項化傳入的引數可以表明發生的錯誤資訊。其實異常就是乙個帶有異常資訊的類而已。異常被丟擲後,需要 獲,從而可以從錯誤中進行...