std::invalid_argument应用

来源:互联网 发布:电视盒子root软件 编辑:程序博客网 时间:2024/06/08 17:41

参考http://www.cnblogs.com/couhujia/archive/2012/10/23/2735682.html

std::invalid_argument ,一个异常类的子类,用于异常检查

值得注意的是其中出现了

1.

 ~InvalidPeople() throw() {}

的用法

参考http://www.cnblogs.com/mumuliang/archive/2012/03/22/2411521.html

这种写法规定了抛出的类型

throw()就是什么都不可以抛出,throw(std::string, int) 那么只能抛出 std::string 和 int  . 同理......


2.

#define TTOSTRING(x) #x
#define TOSTRING(x) TTOSTRING(x)

ErrorInfo ei(__FILE__,TOSTRING(__LINE__),__PRETTY_FUNCTION__);

__FILE__ 包含当前程序文件名的字符串__LINE__  表示当前行号的整数__DATE__ 包含当前日期的字符串__STDC__  如果编译器遵循ANSI C标准,它就是个非零值__TIME__ 包含当前时间的字符串他那个例子用gcc编译的,如果用ms系列编译器应该把__PRETTY_FUNCTION__换成__FUNCTION__.由于__LINE__ 为int类型而我们要换成std::string  于是用到 #define TOSTRING(x) #x  定义宏里用到# 就会转换成字符串 #x -->  "x"通常情况下
#define TOSTRING(x) #x 就可以了 , 但如果出现嵌套宏如__LINE____LINE__ 本身就是宏()  那么
在#define TOSTRING(x) #x下, 就会 "__LINE__"我们再加一层#define TTOSTRING(x) #x#define TOSTRING(x) TTOSTRING(x)
就会展开宏定义里的宏

猜想:__LINE__宏的替换一定要在 #x前面,所以我们多加了一层。。。。
(这应该和编译原理有关,我还没学这么课。。先放着)

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手游cf账号封了怎么办 大门牙缺了一块怎么办 缺了一颗牙齿怎么办 CF购买医疗包竞猜币没到账怎么办 CF手游昵称不合法怎么办 微信gif尺寸过大怎么办 微信表情上限300怎么办 太受欢迎了怎么办快穿 兔宝宝沾上人气味怎么办 我该怎么办的文字图片 爱奇艺缓存视频显示下载失败怎么办 把老公惹生气了怎么办 苹果x用电量太快怎么办 小中考地生没过怎么办 如果遇到不负责的语文老师怎么办 孩子的语文老师教的不好怎么办 刚买的小猫很凶怎么办 2月幼犬不吃东西怎么办 小狗狗不吃狗粮怎么办 母猫不会照顾小猫怎么办 刚买的小狗拉稀怎么办 母兔子吃小兔子怎么办 照片照出来背亮景人是黑的怎么办 手机透明壳变黄了怎么办 ae视频渲染太慢怎么办 3ce口红太干了怎么办 中考误用0.38mm的笔怎么办 ps画笔都锁住了怎么办 削铅笔机坏了怎么办 幼儿园小朋友不听老师话怎么办 孩子在幼儿园不听老师话怎么办 幼儿园大班孩子上课不好好上怎么办 脸上挠了血印子怎么办 大班公开课烫伤了怎么办教案 孩子心理出现了问题该怎么办 幼师打孩子很多家长告怎么办 课堂上纪律不好的学生怎么办 孩子上幼儿园总感冒怎么办 孩子上幼儿园总生病怎么办 台湾人抗拒统大陆人中国人怎么办 如果一年的公休日耍不完怎么办