One of the major advantages to writing scripts in Python
rather than in the IRAF CL is the ability to handle errors
using try
and except
.
This works even when calling IRAF tasks;
that is, an error in a CL script or
a call error
in an SPP program
can be caught using try
in Python.
For example,
There's a catch, however.
Many IRAF tasks can operate on a list of input files,
and these tasks usually convert some errors
(such as file not found) into a warning,
allowing the task to continue trying to process the other input files.
But warnings are not caught by try
and except
.
The imstat
task used by nc.py
in the ncounts
example is a case in point;
a try
statement was not used there
because it would not trap the most common problems,
such as a mistake in the name of the input image.
If you want to do robust error handling,
it is best to check parameter values in Python
before calling the IRAF task
to ensure predictable behavior when errors occur.
Questions or comments? Contact help@stsci.edu Documented updated on |