从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