golang recover異常處理

2021-10-09 21:10:58 字數 477 閱讀 1752

go程式在執行過程中發生panic,會導致程式崩潰,我們可以通過recover來捕獲panic,並進行異常處理。

panic會導致程式崩潰:

func main()
goroutine裡面的panic也會使程式崩潰:

func main()

time.sleep(1*time.second)

fmt.println("ok")

}

在goroutine裡使用defer+recover 進行異常處理,可以保證goroutine發生panic,不會對主程序產生影響:

func main()

} panic("goroutine error") }

// goroutine發生panic,只會使協程中斷,但是不影響主程序,主程序還可以正常執行。

for}

異常 異常鏈

1.常常會在捕獲乙個異常後再丟擲另外乙個異常,並且希望把原始資訊儲存下來,這被稱為異常鏈 2.在jdk1.4前,程式設計師必須自己編寫 來儲存原始異常資訊 3.現在所有throwable的子類子構造器都可以接受乙個cause物件作為引數,這個cause就是異常原由,代表著原始異常,即使在當前位置建立...

三十四 異常(一)異常丟擲 異常捕獲 異常傳播

一 程式錯誤 程式錯誤包含以下 編譯錯誤,即語法錯誤。程式就無法被生成執行 執行時錯誤 例如 動態分配空間時可能不會成功 開啟檔案可能會失敗 除法運算時分母可能為0 整數相乘可能溢位 陣列越界 二 c語言處理程式錯誤的方法 1 返回值 double func else if ret 2 else i...

c 異常處理,異常宣告,捕獲異常

c 捕獲異常的一些規則 1 非mfc 的c 異常應該用過引用來捕獲。使用引用來捕獲異常不需要刪除c 異常物件。因為使用引用捕獲的異常物件會在棧中傳遞。而且保持了多型性,使得你捕獲的異常正是你丟擲的異常物件。使用指標捕獲異常的話,需要你刪除異常物件。使用值捕獲的話,會導致物件的slicing 問題。更...