Improve try_throw_exception
- fix comment - clean up #ifdef organization based on PR feedback (agreed looks better)
This commit is contained in:
parent
0207d7e5fa
commit
4d349abb4d
19
src/json.hpp
19
src/json.hpp
@ -501,24 +501,27 @@ class other_error : public exception
|
|||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief helper function to throw the a downcasted exception.
|
@brief helper function to throw a downcasted exception.
|
||||||
*/
|
*/
|
||||||
|
#ifdef JSON_EXCEPTIONS_ENABLED
|
||||||
template<class Exception>
|
template<class Exception>
|
||||||
void try_throw_exception(exception* ex)
|
void try_throw_exception(exception* ex)
|
||||||
{
|
{
|
||||||
#ifdef JSON_EXCEPTIONS_ENABLED
|
// Only use RTTI if necessary (exceptions are enabled). This way
|
||||||
// Only use RTTI if necessary (exceptions are enabled). This way
|
// can be compiled with no RTTI.
|
||||||
// can be compiled with no RTTI.
|
|
||||||
Exception* down = dynamic_cast<Exception*>(ex);
|
Exception* down = dynamic_cast<Exception*>(ex);
|
||||||
if(down != nullptr)
|
if(down != nullptr)
|
||||||
{
|
{
|
||||||
JSON_THROW(*down);
|
JSON_THROW(*down);
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
ex = ex; // suppress unreferenced formal parameter warnings
|
|
||||||
std::abort();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
template<class Exception>
|
||||||
|
void try_throw_exception(exception* /*unused*/)
|
||||||
|
{
|
||||||
|
std::abort();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief helper function to throw the correct downcasted exception.
|
@brief helper function to throw the correct downcasted exception.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user