VR開發入門教程34:控制臺編程--異常中的Try-Catch
來源:
奇酷教育 發表于:
捕捉異常捕獲并處理異常try { 接受監視的程序塊,在此區域內發生 的異常,由catch中指定的程序處理;} 不能有其它語句分隔catch(要處理
捕捉異常
捕獲并處理異常
try {
//接受監視的程序塊,在此區域內發生
//的異常,由catch中指定的程序處理;
}
// 不能有其它語句分隔
catch(要處理的異常種類和標識符) {
//處理異常;
}catch(要處理的異常種類和標識符) {
//處理異常;
}
Tty-Catch語句
try語句
捕獲例外的第一步就是用try {…}語句指定了一段代碼,該段代碼就是一次捕獲并處理例外的范圍。在執行過程中,該段代碼可能會產生并拋棄一個或多個例外,因此,它后面的catch語句進行捕獲時也要做相應的處理。
如果沒有例外產生,所有的catch代碼段都被略過不執行。
catch語句
每個try語句必須伴隨一個或多個catch語句,用于捕獲try代碼塊所產生的例外并做相應的處理。 catch語句有一個形式參數,用于指明其所能捕獲得例外類型,運行時系統通過參數值把被拋棄的例外對象傳遞給catch語句。
程序設計中要根據具體的情況來選擇catch語句的例外處理類型,一般應該按照try代碼塊中例外可能產生的順序及其真正類型進行捕獲和處理,盡量避免選擇最一般的類型作為catch語句中指定要捕獲的類型。
當然也可以用一個catch語句處理多個例外類型,這時它的例外類型應該是這多個例外類型的父類,但這種方式使得在程序中不能確切判斷例外的具體類型。
注意事項:
1.例外總是由距離產生例外最近的匹配catch代碼段處理
2.如果沒有相應的例外處理
則例外被交給上一層try代碼段進行處理
3.例外處理的查找依據類型匹配原則順序進行
第一個匹配的例外處理被執行,當例外處理執行完畢,程序接著最后一個catch代碼段后的語句執行
4.例外處理的順序影響到例外的處理
子類例外可被父類例外處理捕獲
不要先捕獲父類例外,再捕獲子類例外
5.如果找不到相應的例外處理
程序將結束程序執行;
6.盡量避免用一般類型作為catch中指定要捕獲的類型。一般應該按照try代碼塊中例外可能產生的順序及其真正類型進行捕獲和處理。
7.在例外處理中無法訪問try代碼段中聲明的變量。因為此時try代碼段已經退出了,例外處理所需要的任何信息一般都應該通過例外對象來傳遞
8.在使用方法時盡量直接處理該方法可能產生的例外,這樣你的程序就會更健壯
9.在catch代碼段中產生的例外不是由相同try的后續catch代碼段處理,而是由包含整個try-catch結構的上層try代碼段檢測并處理
10.可以把catch到的例外對象再次拋出,使上層try-catch結構繼續處理該例外事件;也可以把例外對象轉換為其它例外對象…
catch (Exception e) { throw e; }
11.try-catch機制不該被用于流程控制,例外情形應該是很稀少的,而不是經常性的
12.在catch代碼段中的return語句用于退出方法,而不是返回到例外拋出點(throw point)