加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 做什么:抛0做/是什么意思?这是“坏”吗?

发布时间:2020-12-16 03:35:18 所属栏目:百科 来源:网络整理
导读:上下文 我遇到了一些代码,像这样: if( Some_Condition ) throw 0; 我google了一下,发现了一些其他的代码片段使用那个奇怪的看起来0形式. 我认为有人会认为这是: catch(const int e) { } 或者这是一个NULL ptr?被视为无效*? 题 这扔0怎么办?它在某种程度
上下文

我遇到了一些代码,像这样:

if( Some_Condition ) throw 0;

我google了一下,发现了一些其他的代码片段使用那个奇怪的看起来0形式.

我认为有人会认为这是:

catch(const int& e) 
{  }

或者这是一个NULL ptr?被视为无效*?

这扔0怎么办?它在某种程度上是特别的吗?

我的正常偏好是抛出一些(或衍生自)std :: exception的东西.所以对我来说这看起来很糟糕.
这是“坏”吗?

解决方法

通常throw可以抛出任何类型,任何你需要使用此类型或其基类型捕获它.

从技术上讲,它是合法代码,但……

它是错误的代码:你应该总是从std :: exception或至少从某个类派生你的异常,它提供一些有关错误的有用信息,而不是普通的数字.但是从std :: exception派生是正确的方法,因为它允许使用最顶层的catch(std :: exception const& e)并获得至少一些有关错误的信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读