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

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

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

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. }


相关文章
|
6月前
|
C++
C++ 捕获所有异常并拿到错误原因的方法
C++ 捕获所有异常并拿到错误原因的方法
179 0
|
7天前
|
Java 应用服务中间件 测试技术
NoInitialContextException 异常通常会在哪些场景下出现
NoInitialContextException 异常通常在尝试使用 JNDI(Java 命名和目录接口)进行资源查找时,因缺少必要的环境配置或初始化上下文未正确设置而出现。常见于 Java EE 应用中。
|
6月前
|
SQL 安全 程序员
C++:异常
C++:异常
57 7
|
4月前
|
运维
系统日志使用问题之如何防止在打印参数时遇到NPE(空指针异常)
系统日志使用问题之如何防止在打印参数时遇到NPE(空指针异常)
|
4月前
|
文字识别 Java
文本,文字识别12,接口返回值和异常封装,一个好的接口,应该包括,错误码,提示信息,返回的数据,应该知道出错,错在哪里,抛出业务异常应该怎样解决?出现业务异常的时候,抛出业务异常,全局异常处理
文本,文字识别12,接口返回值和异常封装,一个好的接口,应该包括,错误码,提示信息,返回的数据,应该知道出错,错在哪里,抛出业务异常应该怎样解决?出现业务异常的时候,抛出业务异常,全局异常处理
|
6月前
|
Java 程序员 数据库连接
|
6月前
|
SQL 安全 Java
C++之异常
C++之异常
24 0
|
安全 程序员 C语言
|
程序员 编译器 C语言
【C++】异常,你了解了吗?(一)
在之前的C语言处理错误时,会通过assert和错误码的方式来解决,这导致了发生错误就会直接把程序关闭,或者当调用链较长时,就会一层一层的去确定错误码,降低效率,所以c++针对处理错误,出现了异常,一起来学习!
121 0
|
Java 程序员 编译器
异常处理错误
异常处理错误
86 0