== Why is this an issue? Error handling should be defined on file operations to ensure correct processing of program failures rather than defaulting to an abnormal program end. This rule checks two things: * ``++INFSR++`` error handling is defined on file operations. * error handling is delegated to an appropriately named routine. === Noncompliant code example Given the default parameter value, ``++^*PSSR$++``: [source,rpg] ---- F* Noncompliant FIPBDCCP IF E K DISK FEP210 CF E WORKSTN F SFILE(EP21003S:RELN03) FEP471R1 O E PRINTER F USROPN F INFDS(W1SF01) ---- === Compliant solution [source,rpg] ---- FIPBDCCP IF E K DISK INFSR(*PSSR) FEP210 CF E WORKSTN INFSR(*PSSR) F SFILE(EP21003S:RELN03) FEP471R1 O E PRINTER INFSR(*PSSR) F USROPN F INFDS(W1SF01) ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Add the error handling "INFSR(xxxx)" keyword to this F spec === Parameters .format_error_handling **** ---- ^{empty}*PSSR$ ---- Regular expression describing the names of valid error handling routines **** endif::env-github,rspecator-view[]