Chapter 25
Diagnosing and Avoiding Errors
Introduction to Diagnosing and Avoiding Errors . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Understanding How the SAS Supervisor Checks a Job . . . . . . . . . . . . . . . . . . . . . 400
Understanding How SAS Processes Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Distinguishing Types of Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
SAS Programming Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Syntax Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Execution-time Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Data Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Semantic Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Diagnosing Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Examples in This Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Diagnosing Syntax Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Diagnosing Execution-time Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Diagnosing Data Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Diagnosing Semantic Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Using a Quality Control Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Learning More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Introduction to Diagnosing and Avoiding Errors
Purpose
In this section, you will learn how to diagnose errors in your programs by learning about
the following concepts:
how the SAS Supervisor checks a program for errors
how to distinguish among the types of errors
how to interpret the notes, warning messages, and error messages in the log
what to check for as you develop a program
399

Get Step-by-Step Programming with Base SAS 9.4, Second Edition, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.