Hello Applescript Gurus!
I’m having some trouble with the following code and was hoping somebody more knowledgeable can help me out. As a bit of background, I’ve been receiving intermittent -609 (Invalid Connection) errors when using “tell application x to y”. Specifically, this occurs when the command is sent to an application that has recently crashed or quit; my script will encounter this situation from time to time (it’s job is to monitor the running applications and restart them if necessary), so I require a method of handling the -609’s and moving on.
Rather than surrounding every tell statement with a try … end try block, I’d prefer a wrapper for the tell command so I can just call tell_wrapper() when I need the safe-fail behaviour. I’ve included some example code below, but it’s not working as expected – rather than opening a new document in TextEdit, it opens a new document in ScriptEditor.
property editor : application "TextEdit" on write_log(msg) -- write msg to logfile end write_log on tell_wrapper(app_reference, cmd) try tell app_reference to cmd on error errMsg number errNum write_log(errMsg & "(" & errNum & ")" & return) end try end tell_wrapper tell_wrapper(editor, make new document) -- note: quoting doesn't work either, e.g. -- tell_wrapper(editor, "make new document")
Is it possible to pass an application command as a parameter to the tell_wrapper() subroutine as I’m attempting to do here?
Your help is greatly appreciated.