AppleScript:关于非定义变量的奇怪错误

时间:2011-03-14 00:20:42

标签: macos applescript

有时,我收到此错误:

./mac/get_foregroundapp_info.scpt:254:265: execution error: The variable window_name is not defined. (-2753)

这很奇怪,因为我无法看到变量是如何定义的。这是代码:

global frontApp, frontAppName, idleTime, window_name

tell application "System Events"
    set frontApp to first application process whose frontmost is true
end tell

set window_name to ""
try
    set window_name to name of front window of frontApp
end try
if window_name = missing value then
    set window_name to ""
end if

错误显示在第if window_name ...行中。

但它似乎很少见,可能约占2-5%。

当我按住Command键并将鼠标停留在Chrome中的某个链接上时,似乎更经常/总是(?)。不知道这是完全随机的行为现在还是以任何方式相关的。


编辑:当我使用预览打开图像时,似乎也总是出现。奇怪的是,如果我用预览打开PDF,它似乎有效。


正如Chuck指出的那样,可以用另一个try块来捕获这个'未定义变量'错误。

但我的主要问题实际上是:为什么变量未定义?那是什么意思?因为我认为它必须在那个地方定义。


(顺便说一句,这个关于获取窗口标题的代码有几个缺点。这里描述了其中一个。它也不总是有效。请参阅另一个似乎总能工作的解决方案here也没有这种奇怪的错误。)

3 个答案:

答案 0 :(得分:1)

听起来try块中出现错误。尝试在那里放置一个错误处理程序或删除try块,因为现在它只是使变量没有被定义,然后你将得到你在下一行看到的错误。

答案 1 :(得分:0)

虽然我不知道你为什么会收到这个错误,但你尝试过这样的事吗?

try
    set window_name to name of front window of frontApp
on error
    set window_name to ""
end try

或更符合您已有的

set window_name to ""
set window_name to name of front window of frontApp
try
    if window_name = missing value then set window_name to ""
on error
    set window_name to ""
end try

答案 2 :(得分:0)

我找到解决方案,说我“错误-2753”是假错误。因为我的解决方案被找到并正确添加阻止

  tell application "PrettyApp"
  end tell --PrettyApp