8.18/6/2018

Stopping Execution

When using a script, you may come to a point where you'd like the task to fail (raise an error) and trigger your On Error tab under certain conditions. This can be done by using the scripting language's built-in error features, described here.

Note that the value or description of the error will not be available to your error process if one is used. However, when available, a description of the error message will be logged in the Watch log.

VBScript

In VBSCript, the Err.Raise method will halt the execution of the script and trigger the On Error tab. When using On Error Resume Next, raising an error will not stop execution. See MSDN for the Raise method properties and this page for a list of available errors to raise. In the case of VBScript, the error number used will determine the message shown in the log.

Dim s
s = Watch.GetJobInfo(9)
If (s = "") Then
	Err.Raise 449 ' Raises Error #449: "Argument is not optional"
Else
	' Do somethign with Job Info 9!
	Watch.Log "Job Info 9's value is: " + s, 4
End If
Javascript

Javascript uses the throw statement within try to create an exception which, if not caught using catch() , will cause the script execution to stop and the On Error tab to be triggered. See this page on W3Schools.

var s;
s = Watch.GetJobInfo(9);
if (s == "") {
        throw "Value Cannot be empty";
} else {
        // Do something with Job Info 9!
        Watch.Log("Job Info 9's value is: " + s,4);
}
Python

In Python, the raise statement is similar to Javascript and will stop processing unless an except statement is used. See the python documentation.

s = Watch.GetJobInfo(9)
if not s:
        raise NameError('Value cannot be empty')
else:
        # Do something with Job Info 9!
        Watch.Log("Job Info 9's value is: " + s,5)
Perl

In PERL, die() raises an exception and triggers the On Error tab, unless the unless command is used. See the perl documentation.

$s = $Watch->GetJobInfo(9);
if (s = "") {
 die "Value cannot be empty";
} else {
 # Do something with Job Info 9!
 $Watch->Log("Job Info 9's value is: " . $s,4);
}