如何获取exception的详细出错信息?

cheqiang 2008-05-15 11:28:05
我想获取exception出来的详细信息,用来保存

我如何获取到呢??
ex.what()只能取到:OCI调用异常,我想获取到具体Caused by 信息。

例如:出错内容如下(直接cout<<ex的信息):

[INDETERMINATE]TTable.cpp:226,EUdbiException-90009: OCI 调用异常
Caused by: [INDETERMINATE]:-1,OracleException-1: ORA-00001: unique constraint (UCR_CRM1.PK_USER) violated

多谢
...全文
1597 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2008-05-16
  • 打赏
  • 举报
回复
汗,用stringstream啊。stringstream是一个类似于toString的机制,可以把表示信息输出到字符串而不是文件。
cheqiang 2008-05-16
  • 打赏
  • 举报
回复
嗯,把Exception直接cout输出到文件了。
多谢各位!!
过去的我 2008-05-15
  • 打赏
  • 举报
回复
用系统的结构化异常处理得出的信息会比较多吧
Treazy 2008-05-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cheqiang 的回复:]
4楼,有什么好办法来记录呢?
[/Quote]

那你直接把cout出来的东西,直接输出到file中不就可以了!
cheqiang 2008-05-15
  • 打赏
  • 举报
回复
4楼,有什么好办法来记录呢?
cheqiang 2008-05-15
  • 打赏
  • 举报
回复
我也不是想定位,只是我有个批量处理的程序,我希望能把报错信息保存到一个错误日志文件中,方便查看调试。

或许我应该直接把exception传入进去,而不是传个string

taodm 2008-05-15
  • 打赏
  • 举报
回复
不要对“异常”期望太高。
它主要也就是一个强制报错的功能。
“定位”是其它技术手段的职责。
cheqiang 2008-05-15
  • 打赏
  • 举报
回复
1楼的,只能显示EUdbiException名
2楼的,都不是,文档说只有what()一个member
xkyx_cn 2008-05-15
  • 打赏
  • 举报
回复
ex.reason()
ex.description()

瞎猜的,建议你还是去看看文档吧
Treazy 2008-05-15
  • 打赏
  • 举报
回复
看看

cerr << "TYPE" << typeid(ex).name() << endl;
iambic 2008-05-15
  • 打赏
  • 举报
回复
用stringstream。
cppscript 2008-05-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 taodm 的回复:]
不要对“异常”期望太高。
它主要也就是一个强制报错的功能。
“定位”是其它技术手段的职责。
[/Quote]
hslinux 2008-05-15
  • 打赏
  • 举报
回复
别人的异常处理类,如果提供有相关描述信息接口,那就可以取得,否则。。。。。。
hslinux 2008-05-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 Peterry 的回复:]
窃以为是不是如果那个Exception类里有toString()方法就可以,没有就不行?
[/Quote]
Peterry 2008-05-15
  • 打赏
  • 举报
回复
窃以为是不是如果那个Exception类里有toString()方法就可以,没有就不行?

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧