前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C++核心准则E.19:如果无法选择适当的资源句柄,使用final_action表现清除处理​

C++核心准则E.19:如果无法选择适当的资源句柄,使用final_action表现清除处理​

作者头像
面向对象思考
发布于 2020-08-10 01:56:12
发布于 2020-08-10 01:56:12
55800
代码可运行
举报
运行总次数:0
代码可运行

E.19: Use a final_action object to express cleanup if no suitable resource handle is available

E.19:如果无法选择适当的资源句柄,使用final_action表现清除处理

Reason(原因)

finally is less verbose and harder to get wrong than try/catch.

和try/catch比起来,finally更加简练并不容易出错。

Example(示例)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void f(int n)
{
    void* p = malloc(n);
    auto _ = finally([p] { free(p); });
    // ...
}
Note(注意)

finally is not as messy as try/catch, but it is still ad-hoc. Prefer proper resource management objects. Consider finally a last resort.

finally不像try/catch那样凌乱,然仍然是针对具体问题的特殊对策。使用适当的资源管理对象的方式更好。将finally视为最后一招。

Note(注意)

Use of finally is a systematic and reasonably clean alternative to the old goto exit; technique for dealing with cleanup where resource management is not systematic.

使用finally一种系统化、合理化的代替既有代码中goto exit的方式。使用这个技术可以处理资源没有被系统化管理的问题。

Enforcement(实施建议)

Heuristic: Detect goto exit;

启发式的:检出goto exit;

关于finally

finally是gsl提供的一个支持函数,可以生成一个用户释放资源的清除动作。具体实现请参考以下链接:https://github.com/microsoft/GSL/blob/master/include/gsl/gsl_util

原文链接 https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#e19-use-a-final_action-object-to-express-cleanup-if-no-suitable-resource-handle-is-available

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 面向对象思考 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
.Net之Nopi Excel数据导出和批量导入功能
  它是一个专门用于读写Microsoft Office二进制和OOXML文件格式的.NET库,我们使用它能够轻松的实现对应数据的导入,导出功能,并且还能通过其对应的属性对Excel进行对应的样式调整。是一个简洁而又强大的第三方库。
追逐时光者
2019/08/28
1.7K0
.Net之Nopi Excel数据导出和批量导入功能
C#使用NOPI导入Excel
附赠一个winform导入Excel的Demo。 https://github.com/yimogit/NopiExcelDemo
易墨
2018/09/14
1.4K0
NPOI操作EXCEL
------------------------------------------------------------------------
zls365
2020/10/30
1.8K0
NPOI操作EXCEL
SpringBoot整合EasyExcel实现复杂Excel表格的导入&导出功能
🎉SpringBoot整合EasyExcel实现复杂Excel表格的导入&导出功能
IT_陈寒
2023/12/14
5850
SpringBoot整合EasyExcel实现复杂Excel表格的导入&导出功能
Java通过Poi的开发Excel导入导出和下载功能
最近有用到Excel的下载、导入、导出功能。提供一个Excel模板给用户下载,用户根据规范填写模板然后再导入Excel数据,保存到数据库,也可导出类表数据为Excel。因为有时候页面添加功太麻烦,就做成这样的Excel批量导入。
sunonzj
2022/06/21
2.8K0
Java通过Poi的开发Excel导入导出和下载功能
Net操作Excel(终极方法NPOI)
前言 Asp.net/C#操作Excel已经是老生长谈的事情了,可下面我说的这个NPOI操作Excel,应该是最好的方案了,没有之一,使用NPOI能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支持的文件格式包括xls, doc, ppt等。NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作。 方法 先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0
磊哥
2018/05/08
2.4K0
.NET Core使用NPOI将Excel中的数据批量导入到MySQL
前言:   在之前的几篇博客中写过.NET Core使用NPOI导出Word和Excel的文章,今天把同样我们日常开发中比较常用的使用Excel导入数据到MySQL数据库中的文章给安排上。与此同时还把NPOI-ExportWordAndExcel-ImportExcelData这个开源项目升级到了.NET Core 3.1版本(注意之前一直是在.NET Core2.2的基础上开发的),升级的过程中遇到了不少坑,在项目中会有一些注释关于升级到.NET Core3.1需要修改的代码这里就不做详细的讲解了可以Cl
追逐时光者
2020/09/16
4.9K0
.NET Core使用NPOI将Excel中的数据批量导入到MySQL
java实现excel表格导入数据库表「建议收藏」
导入excel就是一个上传excel文件,然后获取excel文件数据,然后处理数据并插入到数据库的过程
全栈程序员站长
2022/09/14
3.1K0
java实现excel表格导入数据库表「建议收藏」
Npoi导入导出Excel操作
    之前公司的一个物流商系统需要实现对订单的批量导入和导出,翻阅了一些资料,最后考虑使用NPOI实现这个需求。 在winform上面实现excel操作:http://www.cnblogs.com/CallmeYhz/p/4920293.html,NPOI的主页:http://npoi.codeplex.com/ 简介 NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目, 使用 NPOI 你就可以在没有安装 Office 或者相应
用户1055830
2018/01/18
3.7K2
Npoi导入导出Excel操作
abp_vue导入导出excel
后端abp,前端vue导入excel,开始准备用直接用npoi,觉得要写太多的代码,就算从以前的复制粘贴也麻烦,所以偷懒直接用别人的轮子 Magicodes.IE。这样可以节省很多工作,根据实体生成excel模板、支持枚举、导入时自动验证数据是否合法(必填、类型等)
用户6362579
2019/12/11
2.7K1
C# 使用 NPOI 库读写 Excel 文件
NPOI 是开源的 POI 项目的.NET版,可以用来读写Excel,Word,PPT文件。在处理Excel文件上,NPOI 可以同时兼容 xls 和 xlsx。官网提供了一份 Examples,给出了很多应用场景的例子,打包好的二进制文件类库,也仅有几MB,使用非常方便。
跟着阿笨一起玩NET
2018/09/19
9K1
JSP上传文件与导出Excel表
我们可以通过Apache的fileupload组件来实现jsp上传文件,这样就不需要自己去写具体的实现了,首先需要配置如下依赖:
端碗吹水
2020/09/23
4K0
JSP上传文件与导出Excel表
使用NPOI导出Excel文件
在Controllers控制器目录中创建ExportController.cs控制器
全栈程序员站长
2022/07/02
2K0
使用NPOI导出Excel文件
NPOI导出数据
将一个表的数据导出到Excel表中和将Excel表中的数据导入到数据库中,需要怎么做?
PHY_68
2020/09/16
1.3K0
NPOI导出数据
如何将excel表格导入mysql数据库_MySQL数据库
打开企业管理器开要导入数数据库,在表上按右键,所务–>导入数据,弹出DTS导入/导出向导,按 下一步 , 2、选择数据源 Microsoft Excel 97-2000,文件名 选择要导入的xls文件,按 下一步 , 3、选择目的 用于SQL Server 的Microsoft OLE DB提供程序,服务器选择本地(如果是本地数据库的话,如 VVV),使用SQL Server身份验证,用户名sa,密码为空,数据库选择要导入数据的数据库(如 client),按 下一步 , 4、选择 用一条查询指定要传输的数据,按 下一步 , 5、按 查询生成器,在源表列表中,有要导入的xls文件的列,将各列加入到右边的 选中的列 列表中,这一步一定要注意,加入列的顺序一定要与数据库中字段定义的顺序相同,否则将会出错,按 下一步 , 6、选择要对数据进行排列的顺序,在这一步中选择的列就是在查询语
全栈程序员站长
2022/11/08
56.5K0
C# NOPI 项目实战(经典)(可下载项目源码)
这篇文章主要介绍了如何安装NPOI,以及NPOI具体如何使用,并且用具体实例介绍了excel导入到datagridview以及 datagridview如何导出到excel并保存。如果不清楚这块的去我公众号去搜索这篇文章阅读。
zls365
2021/02/26
2.3K0
使用Python读取Excel表格“.xlsx”和“.xls”方法大全:一文教会你如何使用Python处理Excel表格数据
随着数据分析的普及,处理Excel表格成了开发者的日常需求。今天,猫头虎为你整理了使用Python读取.xlsx和.xls文件的多种方法,无论是新手还是老鸟,都能轻松掌握!🚀
猫头虎
2025/01/10
1.4K0
前端读取Excel报表文件
在实际开发中,经常会遇到导入Excel文件的需求,有的产品人想法更多,想要在前端直接判断文件内容格式是否正确,必填项是否已填写
书童小二
2018/09/03
4.4K0
前端读取Excel报表文件
Excel导入-----导出(包含所选和全部)操作
在做系统的时候,很多时候信息量太大,这时候就需要进行Excel表格信息的导入和导出,今天就来给大家说一下我使用Excel表格信息导入和导出的心得。
wfaceboss
2019/04/08
1.1K0
npoi批量导入实现及相关技巧
  批量导入功能对于大部分后台系统来说都是不可或缺的一部分,常见的场景-基础数据的录入(部门,用户),用批量导入方便快捷。最近项目需要用到批量导入,决定花点时间写套比较通用的Excel导入功能。经过考
用户1168362
2018/01/05
1.7K0
npoi批量导入实现及相关技巧
相关推荐
.Net之Nopi Excel数据导出和批量导入功能
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档