在字符串函数中抛出“ char const *”的实例后调用终止

沙洛姆

如果参数不适合格式化,我想抛出消息。我实际上不知道会发生什么。我试图用std :: string抛出消息,但是不起作用。那里发生了什么事?

另外,编译器给出了“中止调用”消息。

我在打开主题之前先进行了搜索,但是找不到满意的答案。

string timeConversion(string s) {
    // hh:mm:ss:AM
    if(s.length() != 11)
        throw "message";

    return something;
}

编辑:简化代码。

保罗·埃文斯

不要抛出字符串(const char*):

throw "failed because of hour";

例外class

class MyException : public std::exception
{
public:
    MyException(const char* err) : std::exception(err) {}       
};

并且throw

throw MyException("failed because of hour");

然后catch

try
{
    // code that might throw
}
catch(const MyException& ex)
{
    // process exception
}

如果引发了异常但没有捕获到异常(您当前的情况),则terminate调用该异常

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

抛出“ char const *”实例后,调用C ++中的异常处理终止

在方法调用中带有字符串文字的C ++ const char *

字符串文字vs const char *函数重载

const char *与字符串文字的使用

在字符串中加入 const char*

const char *是字符串还是指针

如何比較 const char* 字符串?

在抛出 std::exception 实例后调用终止

字符串类中的 String(const char*) 构造函数内存泄漏

从C ++中的字符串文字返回const char *吗?

在存储在const char数组中之前修改字符串

C ++-char const * const *-<读取字符串的错误>

为什么调用cout.operator <<(const char *)打印地址而不是字符串?

从C ++的构造函数中向成员const char *变量分配字符串文字时会发生什么?

(const char *)++或(const char)++?

为什么返回带有字符串文字的const char *的函数起作用?

返回从函数分配了字符串文字的const char *是否安全?

可以将字符串文字传递给采用 const char* 的函数吗?

从 const char[] 到带有构造函数的类从字符串的转换

为什么要使用const char *形式的字符串

从int转换为c字符串(const char *)失败

从const char *转换为Swift字符串

const volatile char字符串无法正确打印

创建字符串如何改变const char *指向的值?

从Swift字符串转换为const char *

将字符串转换为const * char

C ++-从const char *复制到字符串

在抛出'kj :: ExceptionImpl'实例后,Cap'n Proto终止被调用

抛出'std :: regex_error'实例后调用终止