|
|
例外處理:try catch
格式:
try
{//檢驗區塊
throw(錯誤類型) //如果發生錯誤利用throw敘述傳出錯誤
}
catch(錯誤類型1)
{//錯誤處理區塊}
catch(錯誤類型2)
{//錯誤處理區塊}
……
try
catch範例
//小誌的例外處理範例
#include
<iostream>
using namespace std;
void main()
//主程式開始
{
int x, y;
cout << "請輸入兩組數字來做除法...(x % y)\n";
cin >> x >> y;
try
{ //錯誤嘗試區塊
if(y == 0) //檢查除數是否為零,是則丟出例外
throw("分母不能為零!\n");
cout << "餘數為: " << x % y << " .\n"; //求出餘數
}
catch (char * s)
{cerr << s;} //錯誤處理區塊
} //主程式結束 |
範例
//小誌的函數的例外處理範例
#include <iostream>
using namespace std;
int
if_modulus (int, int); //求餘數的函數
int try_modulus(int,
int);void main() //主程式開始
{
int x, y,
modulus;
cout << "請輸入兩個整數來相除求餘數...\n";
cin >> x >> y;
modulus = if_modulus(x, y);
cout << "標準的 if 判斷法...\n";
if(modulus
== -1) //檢查if_modulus的回傳值
cerr << "分母不能為零\n";
else
cout << "餘數為: " << modulus
<< " .\n";
cout << "使用例外處理...\n";
try{ //錯誤偵測區塊
cout << "餘數為: " << try_modulus(x,
y); //呼叫try_modulus
cout << " .\n";
}
catch (char * s)
{cerr << s;} //錯誤處理區塊
} //主程式結束
int
if_modulus(int x, int y)
{
if (y == 0) //如果除數為零,回傳值為 -1
return -1;
return x % y;
}
int try_modulus(int x, int y)
{
if (y == 0)
throw("分母(y)不得為零!\n");
//如果除數為零,丟出一個字串
return x % y;
} |
|
|
本網頁由昱得資訊工作室製作(C) Copyright Valor-Studio
since in 1993
|
|
|
|