【异常机制】使用异常打印错误信息

简介: 【异常机制】使用异常打印错误信息

通过抛异常可以直接把异常的信息抛出来,在捕获异常的时候直接打印异常信息,下面通过一个简单的例子说明,更高级的用法请看这篇博文

image.png

1. #include <iostream>
2. using namespace std;
3. 
4. void print_str(const char* str)
5. {
6.  if (str == NULL)
7.  {
8.    throw "str is null"; //分配内存
9.  }
10. 
11.   cout << str << endl;
12. }
13. 
14. int main()
15. {
16.   const char* p = NULL;
17. 
18.   try
19.   {
20.     print_str(p);
21.   }
22.   catch (const char* pStr)
23.   {
24.     cout << "出现 const char* 异常:" << pStr << endl; //pStr是在哪分配内存的呢?在throw处
25.   }
26.   //catch (char* pStr) //无法捕获到 const cha* 类异常
27.   //{
28.   //  cout << "出现 char* 异常:" << pStr << endl;
29.   //}
30.   //catch (const char*) //捕获 const char* 类型异常但不使用异常变量
31.   //{
32.   //  cout << "出现const char*异常" << endl;
33.   //}
34.   catch (...)
35.   {
36.     cout << "其他异常" << endl;
37.   }
38. 
39.   system("pause");
40.   return 0;
41. }


相关文章
|
2月前
|
C++
C++ 捕获所有异常并拿到错误原因的方法
C++ 捕获所有异常并拿到错误原因的方法
|
2月前
|
安全 算法 C++
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误(三)
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误
48 0
|
2月前
|
安全 程序员 编译器
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误(一)
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误
67 1
|
2月前
|
存储 安全 NoSQL
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误(二)
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误
51 1
|
5月前
|
JSON 数据格式
这个错误是由于在解析JSON数据时出现了问题。你可以尝试使用`try-except`语句来捕获异常
这个错误是由于在解析JSON数据时出现了问题。你可以尝试使用`try-except`语句来捕获异常
39 2
|
11月前
|
Java 程序员 编译器
异常处理错误
异常处理错误
74 0
Logger.error方法之打印错误异常的详细堆栈信息
Logger.error方法之打印错误异常的详细堆栈信息
631 0
错误处理和异常
错误处理和异常
94 0
|
Arthas SQL 缓存
获取异常信息里再出异常就找不到日志了
获取异常信息里再出异常就找不到日志了
获取异常信息里再出异常就找不到日志了