try catch裡能否內嵌try catch?答案是肯定的。但是等內層try catch出異常之後是個什麼執行順序呢?看下面**
staticvoid main(string
args)
catch
(exception ex)
finally
console.readkey();
}private
static
void
errormethod()
catch
(exception ex)
finally
}
內層catch處理了異常,所以沒有執行外層catch。
咱們把內層的catch注釋掉 再試下
staticvoid main(string
args)
catch
(exception ex)
finally
console.readkey();
}private
static
void
errormethod()
//catch (exception ex)
//finally
}
很明顯,外層catch捕獲了異常。
總結:try catch巢狀,內層不能捕獲時,會考慮外層內否捕獲,內層能捕獲,則外層catch不執行。
try上面的** 執行順序catch
finally
//e
}
catch
finally
丟擲異常在:內層a,e處由外層catch塊捕獲,並執行外層finally
丟擲異常在:內層b處,且有一合適內層catch捕獲,執行內層finally,後執行e處
丟擲異常在:內層b處,但內層catch塊沒有合適處理程式,執行內層finally,搜尋外層catch,找合適的,執行外層finally,此時不會執行e
丟擲異常在:內層c處,退出內層catch塊,執行內層finally,搜尋外層catch,找到合適,執行外層finally
丟擲異常在:內層d處,退出內層finally塊,搜尋外層catch,找到合適,執行外層finally
a拋異常 a=》f=》g
b拋異常 c能捕獲 b=》c=》d=》e=》f=》g (若c處無法捕獲b=》f=》g)
c拋異常 c=》d=》f=》g
d拋異常 d=》f=》g
e拋異常 a=》f=》g 同a
另外 try{}catch{} 中未做捕獲型別限定,可捕獲所以異常。如 try{}catch(ioexception ex){} 則catch只能捕獲i/o操作引發的異常。
trycatch放在for迴圈的裡面還是外面好
try放在for迴圈裡面和外面的區別是什麼呢?先看看下面的 的區別 public class test catch exception e public void test2 catch exception e public static void main string args throws e...
提前終止forEach技巧,使用try catch
學習react優化效能的時候,在render之前,生命週期shouldcomponentupdate裡判斷前後兩次資料是否一致,使用了foreach巢狀if語句,如果滿足條件想直接break跳出foreach迴圈,但事實並沒有想的那麼簡單,直接丟擲異常。查閱資料原來 接著想了個乙個可以實現的辦法,具...
TRY CATCH 通用格式
use dorbengobegin try generate a divide by zero error.select 1 0 end trybegin catchselecterror number as errornumber,error severity as errorseverity,e...