关于go:个人存档笔试编程题处理panic并打印信息

4次阅读

共计 394 个字符,预计需要花费 1 分钟才能阅读完成。

在本题中,有一个 proc 函数,它会调用 panic(“OK”)来触发 panic,咱们心愿你实现一个名为 solution 的函数
它承受一个 seconds 参数,示意秒数。在 solution 中,每秒调用一次 proc 函数,继续 seconds 秒。
在调用 proc 函数的同时,须要捕捉由 proc 函数触发的 panic,打印出 panic 的信息。
在 seconds 秒后,solution 函数应失常完结

实现办法:

package main

import (
    "fmt"
    "time"
)

func proc() {panic("OK")
}

func solution(seconds int) {
    for i := 0; i < seconds; i++ {func() {defer func() {if r := recover(); r != nil {fmt.Println("Panic:", r)
                }
            }()
            proc()}()
        time.Sleep(time.Second)
    }
}
正文完
 0