Error no matching function for call to ‘std::exception::exception(const char [15])‘ 问题解决

博客讲述了在使用odb-orm库时遇到的错误问题,作者在C++中自定义了一个参数检查函数,当值超出范围时抛出异常。在MSVC2019x64编译环境下,使用std::exception抛出异常导致编译错误。解决方案是改用std::logic_error具体异常类型来精确抛出错误信息,从而更好地定位和解决编程问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、错误代码

在使用odb-orm库的时候,编写一个object类,为了防止插入异常值引发问题,做了一些自定义参数类型检查,自定义抛出exception。

void nameType(int nameType)
    {
        if (checkNameType(nameType)){
            nameType_ = nameType;
            modifiedTime_ = currentDateTime();
        } else {
            throw std::exception("The enum value range out of all values!"); 
        }
    }

使用msvc2019x64,c++17编译的时候,报了如标题的错误。

二、解决方案

大概的意思,exception不能准确捕获到问题,编译限制,希望你更具体的抛出问题。

#include <stdexcept>
throw std::logic_error("XXX");

三、参考资料

 

参考来源: Error no matching function for call to 'std::exception::exception(const char [15])' - Jerry_Jin - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值