Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-19 08:08:30

0001 // Exception types.
0002 
0003 #ifndef _CL_EXCEPTION_H
0004 #define _CL_EXCEPTION_H
0005 
0006 #include <string>
0007 #include <stdexcept>
0008 
0009 namespace cln {
0010 
0011 // Base class of all exception classes thrown by CLN.
0012 class runtime_exception : public std::runtime_error {
0013 public:
0014     runtime_exception ()
0015         : std::runtime_error(std::string()) {}
0016     explicit runtime_exception (const std::string & what)
0017         : std::runtime_error(what) {}
0018 };
0019 
0020 // Thrown when an assertion is violated.
0021 class notreached_exception : public runtime_exception {
0022 public:
0023     notreached_exception (const char* filename, int lineno);
0024 };
0025 
0026 // Thrown when a pole is encountered.
0027 class division_by_0_exception : public runtime_exception {
0028 public:
0029     division_by_0_exception ();
0030 };
0031 
0032 // Thrown when a conversion with As(TYPE)(VALUE) fails.
0033 class as_exception : public runtime_exception {
0034 public:
0035     as_exception (const class cl_number& obj, const char * typestring, const char * filename, int line);
0036 };
0037 
0038 }  // namespace cln
0039 
0040 #endif /* _CL_EXCEPTION_H */