博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Go 笔记]关于 Panic和 Recover
阅读量:7050 次
发布时间:2019-06-28

本文共 521 字,大约阅读时间需要 1 分钟。

今天看了一下Go语言,在讲到以往其他语言的异常的时候,Go采用了不同的方式

Panic 函数类似于抛出一个异常,这个异常会中断当前的执行函数

在 defer 的延迟执行环境中,调用 recover() ,如果 recover() 返回的是 nil表示正常执行,如果非 nil 表示这个 defer延迟环境中”捕获“到了这个 panic

recover() 函数只有在 defer 包裹的执行代码块中能够使用。

func throwsPanic( raisefunc func() ) (b bool){        defer func(){                 if x:= recover(); x != nil {                       b = true                 }        }          raisefunc()/* 这里的回调可能会抛出异常*/        return}

当在函数 throwsPanic 中 raisefunc() 引起panic的时候,defer代码块中的函数会执行,调用 recover() 函数

如果存在异常,改变返回值为 true

转载地址:http://qadol.baihongyu.com/

你可能感兴趣的文章
D-LinkDSP-W215智能插座远程命令执行
查看>>
BCTF Writeup
查看>>
Material Design 控件知识梳理(1) Android Design Support Library 是什么
查看>>
深入理解HTTPS协议
查看>>
App启动页面优化
查看>>
HTTP协议的特点
查看>>
聊聊flink的ConnectionManager
查看>>
聊聊hikari连接池的idleTimeout及minimumIdle属性
查看>>
设计模式 | 迭代器模式及典型应用
查看>>
1小时学会:最简单的iOS直播推流(十一)sps&pps和AudioSpecificConfig介绍(完结)...
查看>>
Oracle APEX 系列文章6:Oracle APEX 到底适不适合企业环境?
查看>>
ubuntu搭建nodejs生产环境——快速部署手册
查看>>
探索解析微服务下的RabbitMQ
查看>>
谈一谈 Spring-Mybatis 在多数据源配置上的坑
查看>>
SpringMVC源码解析系列4-HandleAdapter
查看>>
iOS开发中多线程的那些事
查看>>
使用 React 一年后,我学到的最重要经验
查看>>
字面量-数组、字典
查看>>
从零开始学Python(七):文件存储I/O流和异常捕捉
查看>>
JavaScript基础(5) - IDE与调试
查看>>