有时,我收到此错误:
./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也没有这种奇怪的错误。)
答案 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