C 實現h5牌九棋牌平台異常的幾種捕獲方式

2021-08-15 15:09:13 字數 1797 閱讀 8568

捕獲指定的型別

這樣的話可以對每種異常做出不同的處理,例如:

#include

using

namespace

std;

void

a(int n)

intmain

()catch(int i)catch(float i)catch(double i)

} return

0;}

捕獲泛型

如果想捕獲全部型別異常的話,c++ 提供了一種簡便的做法,在 catch 子句的異常宣告中使用省略號來作為異常宣告,例如:

void

function()catch(...)

}

捕獲類

例如:

#include

using

namespace

std;

class base

};voida()

intmain

()catch(base &e)

return

0;}

也可以捕獲 base 的子類,並且在 base 類的成員函式前加 virtual 實現多型,這樣的話就可以呼叫子類的 name 方法,例如:

#include

using

namespace

std;

class base

};class derived : public base

};voida()

intmain

()catch(base &e)

return

0;}

捕獲未期望的異常

可以在函式名後用 throw 來宣告該函式可能丟擲的異常,例如:

#include

using

namespace

std;

voida()

throw

(int, float)

intmain

()catch(...)

return

0;}

但是,如果函式丟擲的異常型別未在宣告範圍內的話,程式就會發生崩潰:

執行結果:

terminate called after throwing an instance of

'double'

aborted (core dumped)

但我們可以使用 set_unexpected (unexpected_handler func) 這個函式來修改預設的處理方法,來實現自己的處理方式。

未實現捕獲的異常

假如函式丟擲乙個 double 的異常,但在我們捕獲的函式中沒有實現 double 型別的捕獲,當然也沒有使用 catch(...),這種情況和未期望的異常差不多,它也會上報系統,呼叫系統預設的處理函式。同樣我們也可以更改這個預設函式,使用如下方法:

terminate_handler set_terminate (terminate_handler func)
示例程式:

#include

void

exception

()int

main

()

執行結果:

my_terminate

aborted (core dumped)

你的支援就是我的動力!

h5房卡棋牌平台怎麼搭建

首先,要做一款遊戲,如果你要做一款有網路的遊戲,有使用者資料儲存的,那麼首先就要有乙個伺服器,然後我們才能基於unity開發的這個客戶端去跟伺服器通訊,如果是做單機,那麼就請忽略這第一步 我們使用unity跟伺服器通訊這個機制,叫做網路通訊,一款遊戲剛開始時,會定好準備使用的是什麼網路協議,基於什麼...

滲透H5棋牌遊戲 棋牌遊戲開發

0x01 前言 本來不想發的,涉及太多利益了,這些棋牌遊戲的原始碼最高能賣到幾萬。開發起來不比乙個商場程序難。最近又太忙了,沒時間去做程式碼審計的文章了,但一不小心又搶了個運氣王。0x02 開始 一天做這行的朋友來找我,說幫審計下一套程序,正好這邊的缺一篇文章就順便去看看了。開始看了下目錄,找了幾個...

h5棋牌專案 15 C 與C 通訊

參考資料 c 與c 通訊 c 和c 的socket通訊 c 與c 的通訊 問題點數 30分 windows下c 程式與c 程式間通訊 c include include include using namespace std int main 開啟管道檔案以便讀寫,實際上連線到命名管道伺服器程式 h...