MST

星途 面试题库

面试题:Go语言中如何在自定义函数中合理触发panic并进行处理

假设你正在编写一个处理文件读取的Go函数,要求当文件格式不符合预期时触发panic,并在调用该函数的外层代码中正确捕获和处理这个panic,展示相关代码实现。
40.5万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

// readFile 读取文件,如果文件格式不符合预期触发 panic
func readFile(filePath string) {
    // 模拟检测文件格式,这里假设文件内容必须以 "specificHeader" 开头
    // 实际应用中应该根据具体文件格式解析
    content := "notTheExpectedHeader"
    if content[:15] != "specificHeader" {
        panic("文件格式不符合预期")
    }
    fmt.Println("文件格式正确,读取成功")
}

func main() {
    filePath := "example.txt"
    defer func() {
        if r := recover(); r != nil {
            fmt.Printf("捕获到 panic: %v\n", r)
        }
    }()
    readFile(filePath)
}