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