go語言之進階篇recover的使用


1、recover的使用

示例:

package main

import "fmt"

func testa() {
	fmt.Println("aaaaaaaaaaaaaaaaa")
}

func testb(x int) {
	//設置recover,recover只能放在defer后面使用
	defer func() {
		//recover() //可以打印panic的錯誤信息
		//fmt.Println(recover())
		if err := recover(); err != nil { //產生了panic異常
			fmt.Println(err)
		}

	}() //別忘了(), 調用此匿名函數

	var a [10]int
	a[x] = 111 //當x為20時候,導致數組越界,產生一個panic,導致程序崩潰
}

func testc() {
	fmt.Println("cccccccccccccccccc")
}

func main() {
	testa()
	testb(20) //當值是1的時候,就不會越界,值是20的時候,就會越界報錯。
	testc()
}

執行結果:

aaaaaaaaaaaaaaaaa

runtime error: index out of range //值越界

cccccccccccccccccc

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM