C++ 关于可变参数的使用(代码中的省略号...的作用)

看别人的C++代码时,总会发现有函数用...来传递可变长参数,最近又遇到一个catch(...),觉得这种函数参数使用方式非常有趣而且节省很多时间,所以在这里记录下来。

1、catch(...)中的“...”这里的作用主要是拦截所有错误,因为有可能这段代码你也不知道有什么错误没有catch到,为了防止意外,可以用这个方法去捕获未知错误,但也有人为了图方便直接只用一个catch(...)的,感觉这样不是特别好,因为可能程序中会针对具体发生的某种异常、错误采取相应的解决办法,如果完全依赖于捕获所有异常,就意味着只要发生任意一个异常程序就会马上陷入中断,而且对程序崩溃之后排查问题增加了难度,个人意见是先将可预见的错误catch,其他未知的再用这个方法。

catch(...)具体使用方法参考代码1

try
{
//to do
}
catch(std::exception &err)
{
    std::cout<<err.what()<<std::endl;
}
catch(...)
{
//这里会拦截住所有try里没有被前面捕获的错误,但是你不知道是什么错误
//如果有前边的catch,这个...一般不会运行到
  std::cout<<"未知错误"<<std::endl;
}

2、 可变参数函数,这和C/C++的标准输出函数printf的实现是相同的,printf的原型:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值