4 回答

TA貢獻1828條經驗 獲得超4個贊
就是拋出異常 等待catch,
可能具體細節有問題,意思就是這樣的。
可以在里層把異常繼續拋出,然后在外層catch這個異常
比如:
void main()
{
try
{
example()
}
catch(exceptioin e)
{
Console.WriteLine(e.message);
}
}
int example()
{
try
{
int i =9/0;
}
catch(exception e)
{
throw;
}
}

TA貢獻1876條經驗 獲得超6個贊
就是程序出錯的時候,把錯誤拋給上一層引用。throw語句就是用來干這個事的。
比如下面的偽代碼:
func2()
{
throw new Exception("I am a error"); //生成一個自定義異常拋出
}
main ()
{
try{
func2();
}
catch(Exception ex){
print ex;
}
}
程序會輸出:"I am a error"

TA貢獻1827條經驗 獲得超9個贊
有三個關鍵字, 是關于異常處理的:
1、 try
2、 catch
3、 throw
其中關鍵字try表示定義一個受到監控、受到保護的程序代碼塊;關鍵字catch與try遙相呼應,定義當try block(受監控的程序塊)出現異常時,錯誤處理的程序模塊,并且每個catch block都帶一個參數(類似于函數定義時的數那樣),這個參數的數據類型用于異常對象的數據類型進行匹配;而throw則是檢測到一個異常錯誤發生后向外拋出一個異常事件,通知對應的catch程序塊執行對應的錯誤處理。
語法 :
int main()
{
cout << "In main." << endl;
//定義一個try block,它是用一對花括號{}所括起來的塊作用域的代碼塊
try
{
cout << "在 try block 中, 準備拋出一個異常." << endl;
//這里拋出一個異常(其中異常對象的數據類型是int,值為1)
//由于在try block中的代碼是受到監控保護的,所以拋出異常后,程序的
//控制流便轉到隨后的catch block中
throw 1;
cout << "在 try block 中, 由于前面拋出了一個異常,因此這里的代碼是不會得以執行到的" << endl;
}
//這里必須相對應地,至少定義一個catch block,同樣它也是用花括號括起來的
catch( int& value )
{
cout << "在 catch block 中, 處理異常錯誤。異常對象value的值為:"<< value << endl;
}
cout << "Back in main. Execution resumes here." << endl;
return 0;
}
- 4 回答
- 0 關注
- 1089 瀏覽
添加回答
舉報