?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
當(dāng)?shù)竭_(dá)腳本尾部或出現(xiàn)了未能捕捉到的異常時(shí),Ruby會(huì)結(jié)束程序(當(dāng)調(diào)用函數(shù)exit、abort或?qū)χ骶€(xiàn)程發(fā)出Thread.kill命令時(shí),會(huì)引發(fā)SystemExit異常)。結(jié)束程序時(shí)會(huì)依次進(jìn)行下列處理。
在ObjectSpace.define_finalizer中,若注冊(cè)了finalizer的話(huà)就執(zhí)行它(執(zhí)行順序不定).若在執(zhí)行finalizer的過(guò)程中,發(fā)生了大規(guī)模退出的話(huà),就中斷finalizer的運(yùn)行,但腳本仍將繼續(xù)運(yùn)行.
使用exit(3)結(jié)束程序.
此時(shí)傳來(lái)的狀態(tài)值取決于程序的結(jié)束方法.例如,
使用exit!函數(shù)時(shí),將只執(zhí)行exit(2),而不會(huì)執(zhí)行上述任何步驟.