descriptionR7RS requires an error to be signalled (which means an exception is raised as if by `raise`) in the following circumstances:
1. Trying to open for input or delete a file that does not exist or is otherwise inaccessible.
1. Specifying an argument to `scheme-report-environment` that the implementation doesn't support. (It must support 7 and may support other values.)
1. An EOF is encountered while `read` is in the middle of a datum.
1. Using `expt` to raise zero to the power of a non-real number.
This proposal is to provide four standard predicates that identify these specific conditions, to be used in `guard` clauses or in `with-exception` handlers as a portable means of detecting these errors. Although these predicates may return `#t` on other objects, if one reports `#t` on an object, the others must report `#f`. Proposed names are `filename-error?`, `scheme-report-error?`, `read-error?`, and `expt-error?` respectively.R7RS requires an error to be signalled (which means an exception is raised as if by `raise`) in the following circumstances:
1. Trying to open for input or delete a file that does not exist or is otherwise inaccessible.
1. Specifying an argument to `scheme-report-environment` that the implementation doesn't support. (It must support 7 and may support other values.)
1. An EOF is encountered while `read` is in the middle of a datum.
1. Using `expt` to raise zero to the power of a non-real number (alternatively an arbitrary number may be returned).
This proposal is to provide four standard predicates that identify these specific conditions, to be used in `guard` clauses or in `with-exception` handlers as a portable means of detecting these errors. Although these predicates may return `#t` on other objects, if one reports `#t` on an object, the others must report `#f`. Proposed names are `filename-error?`, `scheme-report-error?`, `read-error?`, and `expt-error?` respectively.