If you invoke the WHENEVER command (say, WHENEVER SQLERROR EXIT SQL.SQLCODE) prior to running one or more queries, then you will exit SQLcl upon encountering the first error, with any error messages going both to the spool file and to the console. Does that help?
Since the documentation for WHENEVER in SQLcl is quite brief, you can always search for WHENEVER examples in the sqlplus doc as an alternative and hope the implementation is similar for both command line tools.
I've looked around, and it doesn't currently seem possible to suppress query results AND still see any possible errors.
If your query runs and produces output, what errors are you getting that you want to log elsewhere?
Perhaps using an AFTER SERVERERROR trigger will give you what you are looking for, to log the query and errors to a error log table:
Causes the database to fire the trigger whenever both of these conditions are true:
A server error message is logged.
Oracle relational database management system (RDBMS) determines that it is safe to fire error triggers.
Examples of when it is unsafe to fire error triggers include:
RDBMS is starting up.
A critical error has occurred.
...or, if you are trying to debug your sql before "running" it, then sqlplus 188.8.131.52.0 has the "SET FEEDBACK ONLY" feature where it suppresses query results.
...or you could append "rownum = 1" to the query and see if the query gets parsed successfully.