Class SULException

  • All Implemented Interfaces:
    Serializable

    public class SULException
    extends RuntimeException
    Unchecked exception class that can be used by implementors of a SUL to wrap any exceptions that occur during the SUL.step(Object) methods.

    Rationale for being unchecked: Implementors of a learning or equivalence checking algorithm that directly operates on the SUL level usually have no sensible way of dealing with such an exception (comparable to when MembershipOracle.processQueries(java.util.Collection) throws a runtime exception). However, it may be of interest to some components, like for instance a mapper that maps exceptions to special output symbols.

    Caveat: When implementing your SUL.step(Object) method, never ever catch exceptions with a catch(Throwable) statement! This would also catch internal VM-related errors such as StackOverflowError or OutOfMemoryError. Only ever catch Exception and any user-created subclasses of Throwable that apply.

    See Also:
    Serialized Form
    • Constructor Detail

      • SULException

        public SULException​(@Nullable Throwable cause)
        Creates a SULException wrapped around a Throwable. Please refer to the class description on how this mechanism is to be used.
        Parameters:
        cause - the exception cause, should never be a subclass of Error.