This class is at the root of the derivation tree for Ice exceptions and encapsulates functionality that is common to all Ice and IceUtil exceptions:

{zcode:cpp}
class Exception : public std::exception {
public:
    Exception();
    Exception(const char* file, int line);
    virtual ~Exception() throw();

    virtual std::string ice_name() const;
    virtual void ice_print(std::ostream&) const;
    virtual const char* what() const throw();
    virtual Exception* ice_clone() const;
    virtual void ice_throw() const;
    const char* ice_file() const;
    int ice_line() const;
};
{zcode}

The second constructor stores a file name and line number in the exception that are returned by the ice_file and ice_line member functions, respectively. This allows you to identify the source of an exception by passing the __FILE__ and __LINE__ preprocessor macros to the constructor.

The what member function is a synonym for ice_print. The default implementation of ice_print prints the file name, line number, and the name of the exception.

The remaining member functions are described in the C++ Mapping for Exceptions.

See Also