return和finally順序 炒股用一首歌來領悟,有沒有這樣的歌曲?
炒股用一首歌來領悟,有沒有這樣的歌曲?讓我快樂,讓我悲傷。try中有return,finally塊會不會執(zhí)行?最后一段代碼,不管是否有要執(zhí)行的異常!如果try中的語句異常,try塊中異常語句后的代碼不
炒股用一首歌來領悟,有沒有這樣的歌曲?
讓我快樂,讓我悲傷。
try中有return,finally塊會不會執(zhí)行?
最后一段代碼,不管是否有要執(zhí)行的異常!如果try中的語句異常,try塊中異常語句后的代碼不執(zhí)行,直接執(zhí)行catch塊中的代碼,最后執(zhí)行finally塊中的代碼(遇到返回結(jié)束程序);如果try中的語句不異常,try塊中return之前的語句將被執(zhí)行,finally塊中的語句將被執(zhí)行(遇到return結(jié)束程序),catch塊中的代碼將不被執(zhí)行。當try塊中return之前的語句沒有異常時,執(zhí)行效果:當try塊中return之前的語句有異常時,執(zhí)行效果:
finally什么時候不執(zhí)行?
最后執(zhí)行語句是在try catch之后執(zhí)行的,因此不會執(zhí)行上一個try catch。附言:但不能絕對地說,最后是執(zhí)行后,嘗試捕捉。當有返回值時,try catch中有return I,finally中的return I在return之前不相關
~],所以可以直接對規(guī)則進行匯總。
根據(jù)上述規(guī)則,讓我們看看下面的列表
輸出是40。有兩個retrun,下面的一個將覆蓋上面的一個,所以它將是40
輸出是30。最后,沒有回報。雖然a=40,但return是在之前執(zhí)行的。當前方法體的返回類型的空間已經(jīng)在堆棧中打開了30個(值的副本)。因此,由a=40操作的變量a不影響存儲在新控制回路中的30。
輸出為1。StringBuilder是引用類型。Return將復制引用地址。因此操作生成將影響返回的結(jié)果。
希望以上內(nèi)容能對您有所幫助。