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) include::message.adoc[] include::parameters.adoc[] endif::env-github,rspecator-view[]