從finally塊中,是否有可能告訴異常已被提出?如何判斷我是否在Delphi特例堆棧中?
8
A
回答
18
您可以檢查是否ExceptObject或ExceptAddr分配。 在VCL源代碼中,這是爲考試而完成的。在GIFImg.pas或jpeg.pas中。
下面的代碼應輸出
ExceptObject <>零
ExceptObject =零
和如果刪除了異常那麼當然
ExceptObject =零
ExceptObject =零
try
try
raise Exception.Create('Just an exception');
finally
if ExceptObject <> nil then
WriteLn('ExceptObject <> nil')
else
WriteLn('ExceptObject = nil');
end;
except
end;
if ExceptObject <> nil then
WriteLn('ExceptObject <> nil')
else
WriteLn('ExceptObject = nil');
+4
嘿,很高興在這裏見到你! – 2009-09-12 22:45:39
3
這是一種破解,但你可以嘗試調用AcquireExceptionObject。如果你處於異常狀態,你會得到一個返回值,否則你會得到零。
(如果你沒有得到一個,確保事後調用ReleaseExceptionObject)
2
AFAIK這隻能嵌套try語句來實現:
Try
Try
...
Except
...
End;
Finally
...
End
相關問題
- 1. 如何判斷CString是否在堆或棧上分配內存?
- 2. 如何判斷指針是指向堆棧還是指向堆?
- 3. 我如何判斷ajax是否工作?
- 4. 如何判斷某個特定列是否在表格中?
- 5. Delphi中的ASLR和DEP,如何判斷?
- 6. 如何判斷網頁是否存在?
- 7. 如何判斷OpenMP是否在我的C++程序中工作
- 8. 如何判斷我的Java組件是否在Applet中?
- 9. 如何判斷我的Javascript代碼是否在Jint中運行?
- 10. 如何判斷soundmanager2是否使用html5?
- 11. 如何判斷加載是否有效?
- 12. 如何判斷W鍵是否按下
- 13. 如何判斷碼頭是否凍結?
- 14. 如何判斷UITextView是否髒?
- 15. 如何判斷AUCTeX是否可用?
- 16. 如何判斷UITextField是否爲firstResponder
- 17. 如何判斷DataRow是否髒
- 18. 如何判斷對象是否爲空?
- 19. 如何判斷MemberInfo是否爲內部
- 20. 如何判斷NSUserDefaults是否已保存?
- 21. 如何判斷GIF是否爲動畫?
- 22. 如何判斷NSManagedObject是否已保存?
- 23. 如何判斷AirPlay是否爲鏡像?
- 24. 如何判斷UIPrintInteractionController是否顯示?
- 25. 如何判斷Java類是否抽象?
- 26. 如何判斷是否使用glibc
- 27. Selenium/Phantomjs:如何判斷是否導航?
- 28. 如何判斷我是否在Jira上安裝了GreenHopper?
- 29. 角ui網格 - 如何判斷我是否在最後一排
- 30. 如何判斷我的圖書館是否在Clojars上簽名?
你問你是否e在'finally'塊*中,因爲*異常已經引發,或者只是程序中是否存在異常*某處,例如當您從'except'節中輸入'try-finally'塊時? – 2009-09-13 01:42:49