Package org.smtlib

Class SolverProcess.NoResponseException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.io.IOException
org.smtlib.SolverProcess.NoResponseException
All Implemented Interfaces:
Serializable
Enclosing class:
SolverProcess

public static class SolverProcess.NoResponseException extends IOException
Thrown when a command gets literally no response from the solver -- either because the process was already confirmed dead before this command was even written (the pre-write liveness check in send()), or because its output stream closed while listening without ever producing anything on either stream (the forced-EOF check in listen()). Both cases mean the same thing to a caller -- "nothing came back" -- so they're unified under one exception type rather than requiring two separate checks; it still IS-A IOException, so an unaware catch (IOException e) (e.g. every command but exit in AbstractSolver#sendCommand, and every direct sendAndListen() call in the legacy Solver_z3_4_3) keeps working unchanged. Only AbstractSolver#sendExitCommand() catches this specifically, to tolerate a solver that never acknowledges exit (many legitimately don't) as a benign empty response rather than an error.
See Also:
  • Constructor Details

    • NoResponseException

      public NoResponseException(String s)