Adobe 27510753 Scripting Guide - Page 47

Handling errors

Page 47 highlights

Adobe InDesign CS2 Scripting Guide Getting Started with InDesign Scripting 39 Handling errors Imagine that you've written a script that formats the current text selection. What should the script do if the current selection turns out not to be text at all, but a rectangle, oval, or polygon? Error handling is code that you add to your script to respond to conditions other than those that you expect it to encounter. If you have complete control over the situations in which your script will run, then you don't need error handling. If not, however, you should add error handling capabilities to your script. The following examples show how you can stop a script when no objects are selected in InDesign. AppleScript tell application "Adobe InDesign CS2" --First, check to see whether any InDesign documents are open. --If no documents are open, display an error message. if (count documents) is not equal to 0 then set mySelection to selection if (count mySelection) is not equal to 0 then --Something is selected. If this were a real script, you would --now do something with the object or objects in the selection. display dialog "You have " & (count mySelection) & " items selected." else --No objects were selected, so display an error message. display dialog "No InDesign objects are selected. Please select an object and try again." end if else --No documents were open, so display an error message. display dialog "No InDesign documents are open. Please open a document and try again." end if end tell VBScript Set myInDesign = CreateObject("InDesign.Application.CS2") Rem First, check to see whether any InDesign documents are open. Rem If no documents are open, display an error message. If myInDesign.Documents.Count 0 Then If myInDesign.Selection.Count > 0 Then Rem Something is selected. If this were a real script, you would Rem now do something with the object or objects in the selection. MsgBox "You have " & CStr(myInDesign.Selection.Count) & " items selected." Else Rem Nothing is selected, so display an error message. MsgBox "No InDesign objects are selected. Please select an object and try again." End If Else Rem No documents are open, so display an error message. MsgBox "No InDesign documents are open. Please open a file and try again." End If JavaScript //First, check to see whether any InDesign documents are open. //If no documents are open, display an error message. if (app.documents.length > 0){ if (app.selection.length > 0) { //Something is selected. If this were a real script, you would //now do something with the object or objects in the selection. alert("You have " + app.selection.length + " items selected.") } else { //Nothing is selected, so display an error message. alert("Nothing is selected. Please select an object and try again.") }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184

Adobe InDesign CS2 Scripting Guide
Getting Started with InDesign Scripting
39
Handling errors
Imagine that you’ve written a script that formats the current text selection. What should the script do if the
current selection turns out not to be text at all, but a rectangle, oval, or polygon?
Error handling
is code that
you add to your script to respond to conditions other than those that you expect it to encounter.
If you have complete control over the situations in which your script will run, then you don't need error
handling. If not, however, you should add error handling capabilities to your script. The following examples
show how you can stop a script when no objects are selected in InDesign.
AppleScript
tell application "Adobe InDesign CS2"
--First, check to see whether any InDesign documents are open.
--If no documents are open, display an error message.
if (count documents) is not equal to 0 then
set mySelection to selection
if (count mySelection) is not equal to 0 then
--Something is selected. If this were a real script, you would
--now do something with the object or objects in the selection.
display dialog "You have " & (count mySelection) & " items selected."
else
--No objects were selected, so display an error message.
display dialog "No InDesign objects are selected. Please select an object and try again."
end if
else
--No documents were open, so display an error message.
display dialog "No InDesign documents are open. Please open a document and try again."
end if
end tell
VBScript
Set myInDesign = CreateObject("InDesign.Application.CS2")
Rem First, check to see whether any InDesign documents are open.
Rem If no documents are open, display an error message.
If myInDesign.Documents.Count <> 0 Then
If myInDesign.Selection.Count > 0 Then
Rem Something is selected. If this were a real script, you would
Rem now do something with the object or objects in the selection.
MsgBox "You have " & CStr(myInDesign.Selection.Count) & " items selected."
Else
Rem Nothing is selected, so display an error message.
MsgBox "No InDesign objects are selected. Please select an object and try again."
End If
Else
Rem No documents are open, so display an error message.
MsgBox "No InDesign documents are open. Please open a file and try again."
End If
JavaScript
//First, check to see whether any InDesign documents are open.
//If no documents are open, display an error message.
if (app.documents.length > 0){
if (app.selection.length > 0) {
//Something is selected. If this were a real script, you would
//now do something with the object or objects in the selection.
alert("You have " + app.selection.length + " items selected.")
}
else {
//Nothing is selected, so display an error message.
alert("Nothing is selected. Please select an object and try again.")
}