iT邦幫忙

DAY 1
1

蠻可愛的 Golang系列 第 1

休士頓! 我們有麻煩了!

之前用丁小雨的帳號發了一系列的 蠻可愛的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

果然讓系統產生了錯誤!


下一篇
空中的事情交給我們解決!
系列文
蠻可愛的 Golang30

1 則留言

0
doggyyy
iT邦新手 3 級 ‧ 2014-10-01 21:23:57

達拉斯,你麻煩大了...毆飛

我要留言

立即登入留言