- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
让我们看一下派生自 std::logic_error
的类:
std::out_of_range
当参数超出范围时抛出。std::length_error
当指定长度的参数超出支持的值时抛出。std::domain_error
应该在参数超出预期域时抛出。std::future_error
在使用没有共享状态的 std::future
时抛出(如果我们将对象作为方法的隐藏参数,那么 std::future
也是一个参数)。当传递无效参数(无效位置、无效长度、无效 future )时,似乎会抛出上述所有异常。如果是这样,为什么它们不是从 std::invalid_argument
派生的?我应该从 std::invalid_argument
导出错误吗还是来自 std::logic_error
?
是否存在与无效参数使用无关的逻辑错误?
最佳答案
前三个异常可能表示参数超出范围等。
它们也可能表示其他东西超出了范围。
这可能是计算的结果,也可能是服务提供的数据。
并非每条信息都是一个论点。
至于future_error
……
if we take the object as a hidden argument of a method, then
std::future
is an argument too
该解释基于实现细节,在设计类层次结构或在语义上描述事物的作用时不应发挥作用。从逻辑上讲,std::future
抛出异常,而不是一些将 std::future
作为参数的可能的免费函数。因此,再次强调,“错误”的事情不是争论。
关于c++ - std::logic_error 类是不同种类的 std::invalid_argument,不是吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57738647/
最近我从旧版本的 firebase 切换到最新版本。切换后,由于错误,我无法编译我的应用程序(即使不使用 firebase 代码) third_party/java/android/android_n
c++ 标准说 logic_error 可以在运行前检测到而 runtime_error 在运行时检测。 但是它是如何工作的呢?我的问题是如何在运行前检测 logic_error。你能给我举个例子吗?
我有一个通用数组类,如果它与非原始类型一起使用,它会抛出一个 logic_error。 模板类: #include #include #include using namespace st
如果你在代码中使用 std::logic_error 异常,你会在什么情况下使用它? 最佳答案 logic_error 是这些异常的基础:domain_error、invalid_argument、l
我希望能够捕捉到不同的 logic_errors并且能够区分它们。我能否以某种方式将附加参数传递给稍后要捕获的逻辑错误。这个想法是我需要打印。现在我只是捕捉到 stof 的默认错误可以返回。 “抱歉无
我的 cs 类任务是创建两个继承自 std::logic_error 的自定义异常类:OverflowingSwimmingPoolException 和 UnderflowingSwimmingPo
我的 C++ 程序以 std::logic_error 退出,我想追踪导致它的源代码行。我该怎么做? TBH,我正在使用 gdb,使用 g++ -g 来添加调试信息。我只能得到这些消息: 此应用程序已
我正在寻找某人对 std::logic_error 用法的意见,而不是使用复杂的嵌套 if/elseif 列表返回 true/false。 我想从很多类似的函数中移动,如下面的函数 bool vali
我想根据 stdexcept 的逻辑错误创建自己的错误。我尝试了以下并面临错误,我的猜测是,这不是正确的做法。我无法在谷歌或以前的堆栈溢出问题上找到答案,请原谅我的菜鸟。 // Header clas
我使用 boost spirit x3 创建了一个语法。在测试我生成的解析器时,我认识到存在解析器抛出以下异常的情况: terminate called after throwing an insta
我已经使用一个类来编写一些代码来显示一个盒子的尺寸。我这样做是通过在 toString() 方法中输出,它似乎可以正常工作,但是当我运行该程序时,出现以下错误: Height: 1 Width: 1
我正在尝试使用 C++ 和 MongoDB 完成一些工作。到目前为止,出现了无数问题,但我都挺过来了。 然后我得到了这个: terminate called after throwing an ins
让我们看一下派生自 std::logic_error 的类: std::out_of_range 当参数超出范围时抛出。 std::length_error 当指定长度的参数超出支持的值时抛出。 st
我在这个程序中收到 std::logic_error: basic_string::_s_construct null not valid。我该如何解决?我已经尝试过 previously poste
我正在尝试实现自定义异常层次结构并允许适当的 std::* 被代码捕获。 class my_exception : public virtual std::exception { }; class m
以下是说明: 在第 10 章中,clockType 类被设计用来在程序中实现一天中的时间。除了小时、分钟和秒之外,某些应用程序可能需要您存储时区。 从类 clockType 派生类 extClockT
我最近看到,如果命令行输入不可解析,boost program_options 库会抛出 logic_error。这挑战了我对 logic_error 与 runtime_error 的假设。 我认为
我正在尝试检查输入字符串是字母数字还是大写或空。如果输入字符串在上述出现故障的字符串中,我只想返回 false/0 否则与工作正常的程序的其余部分一起工作。我的程序块有问题: std::string
我一直在尝试将 cfg 读入多重链接列表,但我收到此错误,请有人帮忙。它不断给出这个错误。我不认为有什么错误。请检查这段代码并告诉我哪里有错误导致程序崩溃并出现图片中所附的异常 #include
我不确定是什么导致了这个问题,我正在创建一个井字游戏,您可以在其中与计算机对战。 我没有尝试过任何东西,因为我不知道这个错误是什么意思。 #include #include #include #
我是一名优秀的程序员,十分优秀!