No matter how confident you are in the VI you create, you
cannot predict every problem a user might encounter. Without a
mechanism to check for errors, you know only that the VI does
not work properly. Error checking tells you why and where
errors occur.
When you perform any kind of I/O, consider the possibility
that errors will occur. Almost all I/O functions return error
information. Include error checking in VIs, especially for I/O
operations such as file, serial, instrumentation, data
acquisition, and communication operations, and provide a
mechanism to handle errors appropriately.
Checking for errors in VIs can help you identify the following
problems:
-
You initialized communications incorrectly or wrote improper
data to an external device.
-
An external device lost power, is broken, or is not working
properly.
-
You upgraded the operating system software, which changed
the path to a file or the functionality of a VI or
library. You might notice a problem in a VI or a system
program.
Error Handling
By default, LabVIEW automatically handles any error that
occurs when a VI runs by suspending execution, highlighting
the subVI or function where the error occurred, and
displaying a dialog box. You can choose other error handling
methods. For example, if an I/O VI on the block diagram
times out, you might not want the entire application to
stop. You also might want the VI to retry for a certain
period of time. In LabVIEW, you can make these error
handling decisions on the block diagram of the VI.
VIs and functions return errors in one of two ways-with
numeric error codes or with an error cluster. Typically,
functions use numeric error codes, and VIs use an error
cluster, usually with error inputs and outputs.
Error handling in LabVIEW follows the dataflow model. Just
as data flow through a VI, so can error information. Wire
the error information from the beginning of the VI to the
end. Include an error handler VI at the end of the VI to
determine if the VI ran without errors. Use the error in and
error out clusters in each VI you use or build to pass error
information through the VI.
As the VI runs, LabVIEW tests for errors at each execution
node. If LabVIEW does not find any errors, the node executes
normally. If LabVIEW detects an error, the node passes the
error to the next node without executing. The next node does
the same thing, and so on. Use the
Simple Error
Handler VI, shown in
Figure 1, to handle
the error at the end of the execution flow. The
Simple
Error Handler VI is located on the
Functions>>All Functions>>Time & Dialog
palette. Wire the error cluster to the
error in
input.
Error Clusters
The
error clusters located on the
Functions>>All Functions>>Array & Cluster
palette include the components of information shown in
Figure 2.
-
status is a Boolean value that
reports True if an error occurred. Most VIs,
functions, and structures that accept Boolean data also
recognize this parameter. For example, you can wire an
error cluster to the Boolean inputs of the
Stop, Quit LabVIEW, or
Select functions. If an error occurs, the
error cluster passes a True value to the
function.
-
code is a 32-bit signed integer
that identifies the error numerically. A non-zero error
code coupled with a status of
False signals a warning rather than a fatal
error.
-
source is a string that
identifies where the error occurred.
Use the error cluster controls and indicators to create
error inputs and outputs in subVIs.
Explain Error
When an error occurs, right-click within the cluster border
and select Explain Error from the shortcut menu
to open the Explain Error dialog box. The
Explain Error dialog box contains information
about the error. The shortcut menu includes an Explain
Warning option if the VI contains warnings but no
errors.
You also can access the Explain Error dialog
box from the Help>>Explain Error menu.
Using While Loops for Error Handling
You can wire an error cluster to the conditional terminal of
a
While Loop to stop the iteration of the
While Loop (
Figure 3). When you wire
the error cluster to the conditional terminal, only the
True or
False value of the status
parameter of the error cluster is passed to the
terminal. When an error occurs, the
While Loop
stops.
When an error cluster is wired to the conditional terminal,
the shortcut menu items Stop if True and
Continue if True change to Stop on
Error and Continue while Error.
"A full introductory course on programming with LabVIEW."