throw,如果我只是想抛出字符串
时间: 2024-09-06 21:04:30 浏览: 35
Java异常处理-throw手动抛出异常对象
如果你只是想抛出一个字符串,而不需要创建一个完整的异常类,C++允许直接将`std::string`作为参数传递给`throw`语句。这称为“简单异常”,通常用于一些临时的、程序级的错误处理。例如:
```cpp
#include <iostream>
#include <exception> // 引入异常处理库
void functionThatThrowsString(const char* errorMessage) {
if (!validateInput(errorMessage)) { // 假设这是一个验证函数
// 如果输入验证失败,抛出一个包含错误信息的字符串
throw errorMessage; // 直接抛出字符串
}
}
int main() {
try {
functionThatThrowsString("Invalid input"); // 示例调用
} catch (const char* error) {
std::cerr << "Error: " << error << std::endl;
}
return 0;
}
```
在这个例子中,`functionThatThrowsString`如果输入验证失败,就会直接抛出一个含有错误信息的`char*`。然后在`main`函数中,我们捕获这个简单的异常并打印错误。
注意,尽管可以直接抛字符串,但是这种方式不如使用继承自`std::exception`的自定义异常类更易维护和理解,特别是对于复杂的错误情况。不过,在某些特定场景下,这种做法确实简洁有效。
阅读全文