艾莉亚的猫 Time is limited, To be a better man

谈谈C++的异常处理

C语言里面的错误处理使用不同的数值表示不同类型的错误,传统的错误处理方法存在很大缺点:其表达能力有限;状态编码与错误码难以形成统一标准,例如同样用途的程序库,不同的开发商可能采用不同的错误编码方案来标识不同类型错误;有些函数没有返回值(例如构造函数和析构函数)等等。

C++异常处理机制将异常类型化,显然一个类型比一个数字包含的信息量大得多。C++保证,如果一个异常在抛出点没有得到处理,那么它将一直被抛向上层调用者,直至main函数,指导找到一个类型匹配的异常处理器,否则调用terminate结束程序。可以看出:异常处理机制实际上是一种运行时通知机制

任何类型都可以当做异常类型,异常仅仅通过类型而不是通过值来匹配的。所以下面这段代码是OK的,只是我们一般不使用基本数据类型的对象作为异常。

try{
 if(..) throw 0;
}
catch(int){
 cerr << "exception!" << endl;
}

try{
 if(..) throw "error msg";
}
catch(const char *){
 cerr << "exception!" << endl;
}

2016年阅读书单

软技能

wireshark网络分析的艺术

Perl语言入门

深入理解Nginx(第2版)

重构

你不可不知的关系数据库理论

Docker简介及使用

Docker是一个开源应用容器引擎,可轻松创建轻量级、可移植容器,有了它,人们可以很容易封装和交付程序,在云计算领域有着广泛的应用。Docker自从诞生以来就备受追捧,得到了行业许多大企业的支持,包括亚马逊, Canonical 公司, CenturyLink, 谷歌, IBM, 微软等,许多初创公司也在围绕着 Docker 发展,或者改变他们的发展方向来与 Docker 更好地结合起来。

本文主要介绍如何在自己的项目中使用Dockerfile来构建镜像,镜像可以直接拿来部署云端应用,也可以做为一个基础镜像,我们可以在它之上进行二次开发。

我的简历

这是我刚写的个人简历模板,还算是简洁明了。这里需要注意,HR毕竟不是搞技术的,Markdown写的简历不适合直接投递,需要转成PDF格式。

工作经历是很重要的,也是HR最看重的,这里侧重于写自己的成果(解决了什么问题,给公司带来了哪些效益)和收获(技术上的提升和经验总结)。一份简历里面,我想真的想要表达的内容只有:可以胜任这份工作,我认真、有上进心、没有毛病(强调一下,这条最重要)。毕竟人事部门的工作就是,为公司招聘合适的人才。

联系方式

  • 手机:xxxxxxxxxxx
  • Email:jiangzheahu@126.com
  • QQ/微信号:xxxxxx

个人信息

  • 姓名/性别/年龄
  • 本科/安徽大学计算机系
  • 工作年限:x年
  • 博客:http://yangtze736.github.io
  • Github: http://github.com/yangtze736
  • 期望职位:C/C++软件研发工程师
  • 期望薪资:税前月薪 xk,特别喜欢的公司可例外
  • 期望城市:xxx

HTTP框架Proxygen

这些天,对我之前的中间件项目越发嫌弃了起来,想重新写过可是又一直被安排做其他的事情,只能是吸取经验等以后有机会再写写别的了。今天,就想着看看别人的项目框架来找找感觉,瞄了两眼脸书的Proxygen,谈谈自己的看法。

1 用到了Travis、Dockerfile、Doxygen分别用来帮助持续构建项目,实现容器部署和生产文档。看起来也觉得正规,大公司的技术就是能跟得上时代潮流。

2 毕竟是Facebook的项目,Proxygen自然的牵扯到了自家的基础库(比如folly),还有一大堆依赖,这点稍微不爽。

3 优秀的代码风格。

最后,来看看构建项目的shell脚本。