課程
/后端開(kāi)發(fā)
/C++
/C++遠(yuǎn)征之多態(tài)篇
void test()
{
? ?throw 10;
}
2017-01-08
源自:C++遠(yuǎn)征之多態(tài)篇 5-2
正在回答
可以通過(guò)代碼檢測(cè)拋出,舉個(gè)例子,典型異常捕獲除數(shù)為零這種情況,可以通過(guò)if語(yǔ)句判斷是否除數(shù)為零,如果為零,則通過(guò)throw關(guān)鍵字拋出異常,并通過(guò)catch語(yǔ)句去捕捉,給你參照一個(gè)小程序:#include <iostream>#include <string>#include <stdlib.h>using namespace std;
/*** 定義函數(shù)division* 參數(shù)整型dividend、整型divisor*/int division(int dividend, int divisor){?if (0 == divisor)?{??// 拋出異常,字符串“除數(shù)不能為0”??throw string("除數(shù)不能為0");?}?else?{??return dividend / divisor;?}}
int main(void){?int d1 = 0;?int d2 = 0;?int r = 0;?cin >> d1;?cin >> d2;?// 使用try...catch...捕獲異常?try?{??division(d1, d2);?}?catch (string &)?{??cout << "除數(shù)不能為0" << endl;?}
?return 0;}
當(dāng)你輸入為0,0時(shí)調(diào)用函數(shù)時(shí),if語(yǔ)句捕捉到通過(guò)throw扔出,catch捕捉異常。所有異常一般而言都是程序員事先規(guī)劃好的,也可以籠統(tǒng)用catch(...)捕獲。
junnaxing 提問(wèn)者
舉報(bào)
本教程將帶領(lǐng)大家體會(huì)面向?qū)ο笕筇匦灾械亩鄳B(tài)特性
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢(xún)優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2017-01-08
可以通過(guò)代碼檢測(cè)拋出,舉個(gè)例子,典型異常捕獲除數(shù)為零這種情況,可以通過(guò)if語(yǔ)句判斷是否除數(shù)為零,如果為零,則通過(guò)throw關(guān)鍵字拋出異常,并通過(guò)catch語(yǔ)句去捕捉,給你參照一個(gè)小程序:
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
/**
* 定義函數(shù)division
* 參數(shù)整型dividend、整型divisor
*/
int division(int dividend, int divisor)
{
?if (0 == divisor)
?{
??// 拋出異常,字符串“除數(shù)不能為0”
??throw string("除數(shù)不能為0");
?}
?else
?{
??return dividend / divisor;
?}
}
int main(void)
{
?int d1 = 0;
?int d2 = 0;
?int r = 0;
?cin >> d1;
?cin >> d2;
?// 使用try...catch...捕獲異常
?try
?{
??division(d1, d2);
?}
?catch (string &)
?{
??cout << "除數(shù)不能為0" << endl;
?}
?return 0;
}
當(dāng)你輸入為0,0時(shí)調(diào)用函數(shù)時(shí),if語(yǔ)句捕捉到通過(guò)throw扔出,catch捕捉異常。所有異常一般而言都是程序員事先規(guī)劃好的,也可以籠統(tǒng)用catch(...)捕獲。