我想引發(fā)一個(gè)異常,它是用Python或Java制作的,以用錯(cuò)誤消息完成該程序。錯(cuò)誤消息可能返回給父函數(shù):func readFile(filename string) (content string, err os.Error) { content, err := ioutil.ReadFile(filename) if err != nil { return "", os.ErrorString("read " + filename + ": " + err) } return string(content), nil}但是我希望發(fā)現(xiàn)錯(cuò)誤后可以完成它。下一個(gè)會(huì)正確嗎?func readFile(filename string) (content string) { content, err := ioutil.ReadFile(filename) defer func() { if err != nil { panic(err) } }() return string(content)}
1 回答

慕尼黑5688855
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
按照慣例,Go不會(huì)做這樣的事情。它具有panic
和recover
,有點(diǎn)像異常,但它們僅在真正特殊的情況下使用。找不到文件或類似文件根本不是例外情況,而是非常正常的情況。例外情況是諸如取消引用nil
指針或除以零之類的事情。
- 1 回答
- 0 關(guān)注
- 252 瀏覽
添加回答
舉報(bào)
0/150
提交
取消