2016-03-11 72 views
1

我已經給予維護一個項目在德爾福,我沒有線索:)。它從D5轉換爲XE8。所以它有很多自定義的東西(我正在用Dictionaries替換一些自定義的對象列表,因爲字典在D5中不存在)。主要應用是TForm的延伸,並在FORMCREATE方法包含此行德爾福XE8應用程序處理和第三方異常處理工具

Application.OnException := FormException; 
HandleException := Application.HandleException; 

FormException方法採用例外,還打印了詳細的窗口,一些信息和調用堆棧。

我想將EurekaLog或madExcept集成到我的項目中,以便能夠找到有關未處理異常的更多信息。但是,雖然安裝和啓用,我沒有得到我想要的信息的窗口。它運行FromException方法,雖然我讀到與madExcept鏈接時會被忽略。創建一個新項目,只需使用madExcept或EurekaLog激活的按鈕單擊引發異常就能正常工作。我不知道在哪裏尋找delphi的異常處理,以及我是否需要更多的第三方工具設置。有任何想法嗎?

+0

刪除這些代碼兩行,並遵循madExcept和EurekaLog –

+0

我做的說明和文檔。它仍然沒有工作。它可以在代碼中處理其他地方的異常嗎?任何具體的回撥我應該尋找? – Apostolos

+0

誰知道。 ME對我來說工作得非常好。你的項目有什麼不同?通過平分進行一些調試就是你需要的。甚至只是老式的互動調試。引發你知道你無法處理的異常,並逐步查看代碼以查看它發生的位置。 –

回答

0

我使用EurekaLog,並且有幾種情況下它不捕獲異常。例如,如果您的應用程序是多線程的並且它正在關閉,則線程正在關閉,並且EL可能沒有時間捕獲異常。

您可能還配置了EL以忽略特定的例外。檢查EL設置窗口中的選項。

請確保EL配置爲您所擁有的應用類型(VCL/FMX /等)。這是EL選項窗口中的第一個選項。

確保調試器會產生詳細的地圖文件(項目>選項>編譯器>鏈接>地圖文件 - >詳細)

我能想到的是EL未正確安裝的最後一件事。轉到項目>查看源代碼。如果您的項目激活了EL,您應該能夠在System.StartUpCopy之前看到許多單位(EMemLeak等)。

順便說一句,你有哪個版本的EL?

Elpizo吶boithisa ...

+0

你好John ...這是最新的試用版7.x.我會嘗試你的建議。尤里卡或者瘋狂地在創建我自己的項目時都不會工作。所以我相信這個特定的項目有些問題。我禁用了自定義異常處理,但仍然是同樣的問題。 Pantws se euxaristw! – Apostolos