You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

40 lines
970 B

// Exception types.
#ifndef _CL_EXCEPTION_H
#define _CL_EXCEPTION_H
#include <string>
#include <stdexcept>
namespace cln {
// Base class of all exception classes thrown by CLN.
class runtime_exception : public std::runtime_error {
public:
runtime_exception ()
: std::runtime_error(std::string()) {}
explicit runtime_exception (const std::string & what)
: std::runtime_error(what) {}
};
// Thrown when an assertion is violated.
class notreached_exception : public runtime_exception {
public:
notreached_exception (const char* filename, int lineno);
};
// Thrown when a pole is encountered.
class division_by_0_exception : public runtime_exception {
public:
division_by_0_exception ();
};
// Thrown when a conversion with As(TYPE)(VALUE) fails.
class as_exception : public runtime_exception {
public:
as_exception (const class cl_number& obj, const char * typestring, const char * filename, int line);
};
} // namespace cln
#endif /* _CL_EXCEPTION_H */