doctor give me exceptions

v1
Brett 2024-08-02 23:30:17 -04:00
parent 394dff9cc4
commit 7a551435a0
3 changed files with 20 additions and 3 deletions

View File

@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.20)
include(cmake/color.cmake) include(cmake/color.cmake)
set(BLT_VERSION 0.18.13) set(BLT_VERSION 0.18.14)
set(BLT_TEST_VERSION 0.0.1) set(BLT_TEST_VERSION 0.0.1)
set(BLT_TARGET BLT) set(BLT_TARGET BLT)

View File

@ -18,6 +18,23 @@ namespace blt
void b_throw(const char* what, const char* path, int line); void b_throw(const char* what, const char* path, int line);
void b_abort(const char* what, const char* path, int line); void b_abort(const char* what, const char* path, int line);
struct abort_exception : public std::exception
{
public:
abort_exception() = default;
explicit abort_exception(std::string error): error(std::move(error))
{}
[[nodiscard]] const char* what() const noexcept override
{
return error.c_str();
}
private:
std::string error;
};
} }
/** /**
@ -56,6 +73,6 @@ namespace blt
#define BLT_THROW(throwable) do {blt::b_throw(throwable.what(), __FILE__, __LINE__); throw throwable;} while(0) #define BLT_THROW(throwable) do {blt::b_throw(throwable.what(), __FILE__, __LINE__); throw throwable;} while(0)
#define BLT_ABORT(message) do {blt::b_abort(message, __FILE__, __LINE__); std::abort(); } while (0) #define BLT_ABORT(message) do {blt::b_abort(message, __FILE__, __LINE__); throw blt::abort_exception(); } while (0)
#endif //BLT_ASSERT_H #endif //BLT_ASSERT_H

@ -1 +1 @@
Subproject commit d88c5e15079047777b418132ece5879e7c9aaa2b Subproject commit 8a889d3699b3c09ade435641fb034427f3fd12b6