引发异常.

我想引发一个异常,它是用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

}

但是我希望发现错误后可以完成它。下一个会正确吗?


func readFile(filename string) (content string) {

    content, err := ioutil.ReadFile(filename)


    defer func() {

        if err != nil {

            panic(err)

        }

    }()


    return string(content)

}


森栏
浏览 202回答 1
1回答

慕尼黑5688855

按照惯例,Go不会做这样的事情。它具有panic和recover,有点像异常,但它们仅在真正特殊的情况下使用。找不到文件或类似文件根本不是例外情况,而是非常正常的情况。例外情况是诸如取消引用nil指针或除以零之类的事情。
打开App,查看更多内容
随时随地看视频慕课网APP