检查是否在 TCL OO 中定义了一个类,而不是使用 catch

问题描述


我有一个代码,我想确保确实加载了类定义。 假设类名是 foo。我可以执行以下操作:
if { [ catch { foo new } ] } { source "path_to_code" }
有没有办法在没有捕获的情况下做到这一点?

解决方法

您可以使用 info 命令:

if {![info object isa class foo]} {source "path_to_code"}