從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. 如何判斷是否有堆或堆棧分配?
- 2. 如何判斷CString是否在堆或棧上分配內存?
- 3. 如何判斷指針是指向堆棧還是指向堆?
- 4. 如何判斷一個EC2實例是否在我的VPC中?
- 5. 我如何判斷ajax是否工作?
- 6. 堆棧執行判斷表達式
- 7. 如何判斷我的機器是否爲EC2實例?
- 8. 如何判斷某個特定列是否在表格中?
- 9. Delphi中的ASLR和DEP,如何判斷?
- 10. 如何判斷editText是否在焦點?
- 11. 如何判斷網頁是否存在?
- 12. 如何判斷我的jQuery代碼是否在iFrame中運行?
- 13. 如何判斷我的Javascript代碼是否在Jint中運行?
- 14. 如何判斷OpenMP是否在我的C++程序中工作
- 15. 如何判斷我的Java組件是否在Applet中?
- 16. Swift + CLLocationManager:如何判斷用戶是否在特定的城市?
- 17. 如何判斷用戶是否在特定的位置?
- 18. 如何判斷「ZipArchiveEntry」是否是目錄?
- 19. 中斷堆棧的堆棧指針
- 20. 如何判斷某個特定的Mongo實例是否具有活動連接?
- 21. 如何判斷是否有控制檯
- 22. 如何判斷NSUserDefaults是否已保存?
- 23. 如何判斷插座是否連接?
- 24. 如何判斷MIDIEndpointRef是否爲虛擬?
- 25. 如何判斷AirPlay是否爲鏡像?
- 26. 如何判斷HttpResponse是否已關閉?
- 27. 如何判斷UIPrintInteractionController是否顯示?
- 28. 如何判斷孩子是否爲零
- 29. 如何判斷Safari是否使用HTTP2?
- 30. 如何判斷對象是否爲空?
你問你是否e在'finally'塊*中,因爲*異常已經引發,或者只是程序中是否存在異常*某處,例如當您從'except'節中輸入'try-finally'塊時? – 2009-09-13 01:42:49