Dephi中如何用程序取得当前程序所在源文件名和当前行号,为了报错时能精确知道出错文件名及行号? 如题,当不是用try...exception机制时,想在程序出错处取得其源文件名和行号,以便在抛出错误信息中包含这些信息,如何做?VC++中有宏_FILE_,_LINE_可以实现。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个高手已经在这个帖子里说了查找方法http://community.csdn.net/Expert/TopicView.asp?id=3601416但是,用程序来控制,俺也不知道,期待 用程序來控制..NND 我在繁體打字實在慢....用 TRY EXCEPT END + ASSERT比如try Open; // 如果這一行出現異常 那麼就到了exceptexcept on E:exception do begin ASSERT(False); // 那麼 這就會出現 行數了...不過行數會有誤差.<行數還要自己解析> ShowMessage(E.Message); // 兩者結合 就知道 行數,文件名 && 出錯信息 end;end;偶 就是這麼做的 很早的時候我好像發了一個帖 沒找到方法 就自己這麼將就著處理了... 有没有不用try机制能实现的?比如我写的一个返回类型为bool函数,在另外一个地方调用它,如果它返回false,我就要添加一个出错信息到错误消息里,这个出错信息包含源文件名和行数。 呵呵 如果是你這樣的需求 我也想知道...vc++裡面的 這些宏 也只有通過ASSERT這樣的宏才有實際意義的 但是向你這樣統一處理 我覺得不太可能 因為這些宏 是獲的某一行的行數,但是你怎麼獲的任意<出錯>行的行數呢?? 總要有一個事件之類的去觸發....你先考慮以下你的模型.. vc++里这样处理没有什么问题,我的同事写的一个parser里就是这样用的。他写了一个logger类,用一个vector<string>做存储错误消息的数据结构,主程序中实例化这个类为对象,作为参数传入各个函数中,然后调用每个返回型为bool的函数时,如果返回值为false,就输出一条信息到logger中,在程序返回主程序中,输出logger中的错误信息到控制台。所以我想知道delphi里有没有类似的处理办法。 vc++里这样处理没有什么问题,我的同事写的一个parser里就是这样用的。他写了一个logger类,用一个vector<string>做存储错误消息的数据结构,主程序中实例化这个类为对象,作为参数传入各个函数中,然后调用每个返回型为bool的函数时,如果返回值为false,就输出一条信息到logger中,在程序返回主程序中,输出logger中的错误信息到控制台。所以我想知道delphi里有没有类似的处理办法。-------------------------------------------你这可以获得到出错的准确行么你这样操作应该是可以获得大致的而已除非你把__LINE__等传出 提示一点,未必有理:try机制固然好,C++中也有try机制,但是也要注意,try机制的不可移植性,不同的编译器,try的具体实现不一致,有的甚至就没有。 呵呵 __LINE__還只是MFC的東西呢...可以获得输出行号的行,也就是大致行,很容易根据大致行找到准确行。這樣了...還有身麼話說... TRadioGroup透明效果 这里有没人老婆也是做程序的 调用chm帮助文件问题 如何打印这些图形啊(在线等待) 用ado能进行事务处理吗? 江湖救急!急!急!(关于连接查询问题) 先谢了!! 函数返回可以是一个数组吗? 如何在对.dll进行装载或释放的时候自动完成一些操作或运算 关于sql的查询问题,请大家帮忙! SQL数据库中: 严重问题 怎样把一张jpeg格式的图片,先转换成二进制,然后再存入数据库的二进制子段 picture 。
http://community.csdn.net/Expert/TopicView.asp?id=3601416
但是,用程序来控制,俺也不知道,期待
Open; // 如果這一行出現異常 那麼就到了except
except
on E:exception do
begin
ASSERT(False); // 那麼 這就會出現 行數了...不過行數會有誤差.<行數還要自己解析>
ShowMessage(E.Message); // 兩者結合 就知道 行數,文件名 && 出錯信息
end;
end;偶 就是這麼做的 很早的時候我好像發了一個帖 沒找到方法 就自己這麼將就著處理了...
比如我写的一个返回类型为bool函数,在另外一个地方调用它,如果它返回false,我就要添加一个出错信息到错误消息里,这个出错信息包含源文件名和行数。
-------------------------------------------
你这可以获得到出错的准确行么你这样操作应该是可以获得大致的而已
除非你把__LINE__等传出