咖啡伴侶

          呆在上海
          posts - 163, comments - 156, trackbacks - 0, articles - 2

          恐慌(Panic)和恢復(Recover)

          Posted on 2013-07-30 10:59 oathleo 閱讀(435) 評論(0)  編輯  收藏 所屬分類: Golang
          恐慌(Panic)和恢復(Recover)
          Go 沒有像Java 那樣的異常機制,例如你無法像在Java 中那樣拋出一個異常。作為替
          代,它使用了恐慌和恢復(panic-and-recover)機制。一定要記得,這應當作為最后的
          手段被使用,你的代碼中應當沒有,或者很少的令人恐慌的東西。這是個強大的工具,
          明智的使用它。那么,應該如何使用它呢。
          下面的描述來自于[7]:
          Panic
          是一個內建函數,可以中斷原有的控制流程,進入一個令人恐慌的流程中。當函
          數F 調用panic,函數F 的執行被中斷,并且F 中的延遲函數會正常執行,然
          后F 返回到調用它的地方。在調用的地方,F 的行為就像調用了panic。這一過
          程繼續向上,直到程序崩潰時的所有goroutine 返回。
          恐慌可以直接調用panic 產生。也可以由運行時錯誤產生,例如訪問越界的數
          組。
          Recover
          是一個內建的函數,可以讓進入令人恐慌的流程中的goroutine 恢復過來。recover
          僅在延遲函數中有效。
          在正常的執行過程中,調用recover 會返回nil 并且沒有其他任何效果。如果
          當前的goroutine 陷入恐慌,調用recover 可以捕獲到panic 的輸入值,并且
          恢復正常的執行。
          主站蜘蛛池模板: 达日县| 平湖市| 富裕县| 张家口市| 锦屏县| 泰安市| 崇信县| 云南省| 渝北区| 泸定县| 崇义县| 和龙市| 汽车| 汉川市| 富锦市| 东乡| 晋宁县| 通化市| 庆城县| 大洼县| 河南省| 军事| 芜湖县| 苗栗县| 农安县| 上栗县| 东兴市| 蓬溪县| 都安| 民和| 霸州市| 上虞市| 金乡县| 兴山县| 横峰县| 安平县| 瓮安县| 汉川市| 游戏| 伊吾县| 沂南县|