python拋出異常raise python的try方法中的else和finally的區(qū)別?
python的try方法中的else和finally的區(qū)別?如下所示:(R輸出:(R)在try中引發(fā)一個異常,它將在exception中立即執(zhí)行。當(dāng)在異常中遇到return時,將強(qiáng)制在finally中
python的try方法中的else和finally的區(qū)別?
如下所示:(R
輸出:(R)在try中引發(fā)一個異常,它將在exception中立即執(zhí)行。當(dāng)在異常中遇到return時,將強(qiáng)制在finally中執(zhí)行。在finally中遇到return時,會返回輸出:try中沒有拋出異常,因此不會在exception中執(zhí)行,但是在try中遇到return時,會立即強(qiáng)制在finally中執(zhí)行,并在finally中返回test1和test2的結(jié)果,無論是在try中還是except中,當(dāng)遇到return時,只要設(shè)置了finally語句,當(dāng)前return語句就會被中斷,執(zhí)行就會跳到finally。如果在finally中遇到return語句,則直接返回,而不是跳回try/excpet中中斷的return語句;當(dāng)在except和try中遇到return時,return的值將被鎖定,然后跳轉(zhuǎn)到finally。如果finally中沒有return語句,則finally執(zhí)行后返回原來的返回點(diǎn),并返回之前鎖定的值(即finally中的動作不影響返回值)。如果finally中有return語句,那么finally中的return語句將被執(zhí)行。R輸出test5的結(jié)論:在一個循環(huán)中,在跳出循環(huán)之前,它將首先轉(zhuǎn)到finally execute,然后開始下一輪循環(huán)。使用自定義異常,可以跳出深嵌套循環(huán)。請看我所做的示例:class foundexception(exception):pass
try:[對于行,記錄在]枚舉(表):
對于列,字段在枚舉(記錄):
對于索引,項(xiàng)在枚舉(字段):
如果項(xiàng)==目標(biāo):
引發(fā)FoundException()
除了FoundException:
打?。ā痹冢▄0},{1},{2})”。格式(行,列,索引))
否則:
打?。ā蔽凑业健埃?/p>