#ifndef __EXCEPTION_AMV #define __EXCEPTION_AMV namespace amv { class exception { const char *message; public: exception(const char *sourceMessage); virtual const char *what() const; }; exception::exception(const char * sourceMessage): message(sourceMessage) { } const char *exception::what() const { return message; } class out_of_range: public exception { public: out_of_range(const char *sourceMessage="Error de rango"); }; out_of_range::out_of_range(const char *sourceMessage): exception(sourceMessage) { } class bad_alloc: public exception { public: bad_alloc(const char *sourceMessage="Error de asignación de memoria"); }; bad_alloc::bad_alloc(const char *sourceMessage): exception(sourceMessage) { } class overflow: public exception { public: overflow(const char *sourceMessage="Error de desbordamiento positivo"); }; overflow::overflow(const char *sourceMessage): exception(sourceMessage) { } class underflow: public exception { public: underflow(const char *sourceMessage="Error de desbordamiento negativo"); }; underflow::underflow(const char *sourceMessage): exception(sourceMessage) { } class division_by_zero: public exception { public: division_by_zero(const char *sourceMessage="Error, división por cero"); }; division_by_zero::division_by_zero(const char *sourceMessage): exception(sourceMessage) { } } #endif