25 lines
577 B
Go
25 lines
577 B
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
)
|
|
|
|
// 标准资源释放:打开文件后立即defer关闭,检查关闭错误
|
|
func main() {
|
|
// 打开文件
|
|
file, err := os.Open("file/test.txt")
|
|
// 核心:必须处理打开错误
|
|
if err != nil {
|
|
panic("文件打开失败:" + err.Error())
|
|
}
|
|
// 核心:defer延迟关闭,函数退出前自动释放句柄
|
|
defer func() {
|
|
// 关闭文件时检查错误,释放资源同时捕获异常
|
|
if closeErr := file.Close(); closeErr != nil {
|
|
panic("文件关闭失败:" + closeErr.Error())
|
|
}
|
|
}()
|
|
|
|
// 执行业务读写逻辑
|
|
}
|