gpt4 book ai didi

c++ - 如果它为空,则在 C++ 中抛出一个值

转载 作者:太空宇宙 更新时间:2023-11-04 14:37:11 24 4
gpt4 key购买 nike

我正在尝试检查一个字符指针是否为空。如何检查该值是否为空我基本上来自 java

char* mypath = getenv("MYPATH");
if(!mypath) //this is not working
throw "path not found";
if(mypath == NULL) //this is also not working
throw "path not found";

我遇到异常“在抛出‘char const*’实例后调用终止”

最佳答案

问题不在于测试:您的两个 if 都是正确的(就编译器而言——出于可读性的原因,第二个更可取)。问题是您没有在任何地方捕获异常。你抛出一个 char const[13],它被转换为一个 char const* 作为异常的类型,而你没有一个 catch ( char const* ) 调用代码中的任何位置。

在 C++ 中,通常(但根本不需要)只抛出派生自 std::exception 的类类型;此规则的唯一异常(exception)是为程序关闭抛出一个 int,然后仅当这是您工作的上下文中记录的约定时。 (它只有在 main 捕获 int 并返回值时才能正常工作。)

关于c++ - 如果它为空,则在 C++ 中抛出一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12626773/

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