我想提出一个异常,因为它是用Python或Java制作的 - 用错误信息完成程序 - .
可以将错误消息返回给父函数:
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
}
Run Code Online (Sandbox Code Playgroud)
但是我想要在发现错误时完成它.下一个会是正确的吗?
func readFile(filename string) (content string) {
content, err := ioutil.ReadFile(filename)
defer func() {
if err != nil {
panic(err)
}
}()
return string(content)
}
Run Code Online (Sandbox Code Playgroud)
按照惯例,Go不会做这样的事情.它有panic和recover,有点像例外,但它们只在非常特殊的情况下使用.找不到文件或类似文件根本不是特殊情况,而是非常规的情况.特殊情况是取消引用nil指针或除以零之类的事情.
| 归档时间: |
|
| 查看次数: |
4205 次 |
| 最近记录: |