也许这是一个愚蠢的问题,我是C ++的新手:
我读了一些关于异常机制的内容,在某些代码中我遇到了一行:
throw SomeClass();
这是什么意思?
它是对c类的调用,然后抛出该类的对象吗?
在其他例子中,我看到它始终是" throw"扔了一个实例(特定的字符串或int,在这里我很困惑因为我知道c' tor没有返回类型。
我不理解"逻辑"这个表达背后......
答案 0 :(得分:1)
是
更具体地说,这构造了一个临时的并抛出它。
答案 1 :(得分:0)
首先,你应该抛出一些从std :: exception派生的实例(虽然你可能会抛出整数,c-strings,...,这通常很糟糕)。在某些情况下,您可能会抛出一个特殊异常(std:bad_alloc就是一个例子)。
然后,您总是通过调用构造函数抛出一个临时实例(必须构造):throw SomeClass();