php try catch用法 在go里怎么用
时间: 2024-05-09 16:15:45 浏览: 131
利用golang实现封装trycatch异常处理实例代码
在 Go 语言中,可以使用 `defer` 和 `recover` 来实现类似于 PHP 中 `try-catch` 的功能。
`defer` 用于注册延迟调用,即在函数退出时执行一些操作。`recover` 用于捕获 panic,恢复正常的程序执行。
下面是一个示例:
```go
func divide(a, b int) (result int, err error) {
defer func() {
if e := recover(); e != nil {
err = fmt.Errorf("panic: %v", e)
}
}()
result = a / b
return
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Result:", result)
}
}
```
在上面的示例中,`divide` 函数中使用了 `defer` 和 `recover` 来捕获除以 0 导致的 panic,然后将其转换为 error 返回。在 `main` 函数中,我们检查 error 是否为 nil,如果不是则表示出错了,否则输出计算结果。
阅读全文