之前用丁小雨的帳號發了一系列的 蠻可愛的Goang.
寫了有42篇吧,用來參加鐵人賽是夠了.
但是我們重點在於與大家分享,所以就繼續下去.
之前是介紹到 自定義錯誤訊息
今天接著介紹 產生錯誤狀況.
當今程式開發越來越重視測試,但是沒有產生錯誤情況,很難做好完整的測試.
Golang提供了一個指令叫 panic, 效果如同名稱.
我們來看看範例:
// hello50
package main
import (
"fmt"
)
func main() {
fmt.Println("倒數計時開始!")
for i := 10; i >= 1; i-- {
if i == 5 {
fmt.Println(i)
panic("休士頓! 我們有麻煩了!")
} else {
fmt.Println(i)
}
}
fmt.Println("發射!!")
}
執行結果如下:
λ ./hello50
倒數計時開始!
10
9
8
7
6
5
panic: 休士頓! 我們有麻煩了!
goroutine 16 [running]:
runtime.panic(0x495080, 0xc208000160)
/usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
main.main()
/home/asami/Study2014/S1407/go/hello50/hello50.go:13 +0x18b
goroutine 17 [runnable]:
runtime.MHeap_Scavenger()
/usr/local/go/src/pkg/runtime/mheap.c:507
runtime.goexit()
/usr/local/go/src/pkg/runtime/proc.c:1445
goroutine 18 [runnable]:
bgsweep()
/usr/local/go/src/pkg/runtime/mgc0.c:1976
runtime.goexit()
/usr/local/go/src/pkg/runtime/proc.c:1445
goroutine 19 [runnable]:
runfinq()
/usr/local/go/src/pkg/runtime/mgc0.c:2606
runtime.goexit()
/usr/local/go/src/pkg/runtime/proc.c:1445
果然讓系統產生了錯誤!