In Applescript, come posso ottenere un numero di riga o una traccia dello stack in caso di errore?

1

Sto scrivendo degli Applescript piuttosto complessi, ma quando qualcosa va storto - evento Apple scaduto - o simile, non posso dire esattamente dove ha fallito.

Al momento, sto avvolgendo tutti i gestori con i blocchi try, con un errore on che genera nuovamente l'errore, con un riferimento al nome del gestore e il valore di una variabile che ho impostato in vari punti attraverso il gestore quindi posso isolare l'errore da qualche parte tra due punti.

** C'è un modo per far sì che Applescript dica "Timeout dell'evento Apple alla riga 15 in await (), alla riga 60 in connectRemoteUser (), alla riga 90 in autostartTestUsers () ' senza dover codificare tutto direttamente ?

Non posso fare affidamento sull'evidenziazione della posizione dell'editor di script perché gli errori si verificano in modo intermittente quando lo script è in produzione.

    
posta Tim Baverstock 13.04.2016 - 14:33
fonte

1 risposta

1

È brutto ma funziona ...

try
    set marker to 1
    -- do stuff
    set marker to 2
    -- do stuff
    set marker to 3
    1 / 0
    set marker to 4
on error errMsg number errNum
    tell application "SystemUIServer"
        display alert (marker & space & errMsg & return & return & "Error number " & errNum as text) buttons "Cancel" cancel button "Cancel"
    end tell
end try
    
risposta data 13.04.2016 - 15:26
fonte

Leggi altre domande sui tag