我制作了一个大型程序,可以打开和关闭文件和数据库,对它们执行写入和读取等等。由于没有“go 中的异常处理”之类的东西,并且由于我并不真正了解“defer”语句和“recover()”函数,因此我在每次打开文件、读写、数据库条目后都应用了错误检查等等。
_,insert_err := stmt.Run(query)
if insert_err != nil{
mylogs.Error(insert_err.Error())
return db_updation_status
}
为此,我在开始时将 db_updation_status 定义为“假”,并且在程序中的一切正常之前不要将其设为“真”。在我认为可能出错的每个操作之后,我在每个功能中都这样做了。
你认为使用 defer-panic-recover 有更好的方法吗?我在这里阅读了这些http://golang.org/doc/articles/defer_panic_recover.html,但无法清楚地了解如何使用它们。这些构造是否提供类似于异常处理的功能?没有这些结构我会更好吗?如果有人能用一种简单的语言向我解释这一点,和/或为这些构造提供一个用例并将它们与我上面使用的错误处理类型进行比较,我将非常感激。