gpt4 book ai didi

c++ - 抛出匿名异常子类

转载 作者:行者123 更新时间:2023-11-30 02:34:52 25 4
gpt4 key购买 nike

我在玩 C++ 异常,我试过像这样抛出一个匿名异常:

throw class : public std::exception
{
virtual const char *what() const noexcept
{
return "Custom exception";
}
} ex;

但是我在尝试编译时遇到了以下错误:

error: expected primary-expression before ‘class’
throw class : public std::exception
^

我的编译器是 Linux x86_64 上的 gcc 5.2.1。

我怎样才能达到预期的效果?

最佳答案

这本身并不是答案,而是一些有助于您继续前进的重要信息:

首先,抛出一个匿名异常不太可能有用。异常按其类型捕获。如果您无法命名类型,则无法显式捕获异常 - 只能通过其基数,在这种情况下,您还不如直接抛出基数。

其次(这很重要):

很少有充分的理由派生自 std::exception直接地。您应该派生自 <stdexcept> 中定义的异常类型之一。

这些是:

std::runtime_error - 表示某些运行时条件导致无法此刻执行服务(例如丢失文件)。

std::logic_error - 表明所尝试的将永远不可能,并且程序在编译时无法检测到的方式存在根本性错误。

此处方便引用:

http://en.cppreference.com/w/cpp/header/stdexcept

关于c++ - 抛出匿名异常子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34253544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com