1. 程式人生 > 其它 >golang中錯誤處理

golang中錯誤處理

package main

import (
	"errors"
	"fmt"
)

//錯誤處理
/*
	1.在預設情況下,當發生錯誤後,程式就會退出
	2.當發生錯誤後,可以捕獲到錯誤,並進行處理,保證程式可以繼續執行。
	3.還可以在捕獲錯誤後,給管理員一個提示。
	defer,panic,recover
	Go丟擲一個panic異常,然後在defer中通過recover捕獲這個異常,正常處理
	加入預警程式碼,可以讓程式更加健壯
*/
func test() {
	//處理異常
	defer func() {
		err := recover() //可以捕獲到異常
		if err != nil {
			fmt.Println("err=", err)
			//可以將錯誤傳送給管理員
		}
	}()
	num1 := 10
	num2 := 0
	res := num1 / num2 //異常
	fmt.Println("res=", res)
}

/*
	自定義錯誤
	Go程式中,支援自定義錯誤,使用errors.New和panic內建函式
	errors.New("錯誤說明"),會返回一個error型別的值,表示一個錯誤
	panic內建函式,接受一個interface{}型別的值作為引數,可以接受error型別的變數,輸出錯誤資訊並退出程式
*/
//函式讀取配置檔案init.conf的資訊
//如果檔名傳入不正確,我們就返回一個自定義的錯誤
func readConf(name string) (err error) {
	if name == "config.ini" {
		//讀取
		return nil
	} else {
		//返回一個自定義的錯誤
		return errors.New("檔案讀取錯誤")
	}
}
func test02() {
	err := readConf("config2.ini")
	if err != nil {
		//如果讀取檔案傳送錯誤,就輸出這個錯誤並終止程式
		panic(err)
	}
	fmt.Println("test02()繼續執行")
}
func main() {

	test()
	test02()
	fmt.Println("後續~")
}