OpenRCT2/src/openrct2-ui/SDLException.h

43 lines
1.1 KiB
C
Raw Normal View History

/*****************************************************************************
* Copyright (c) 2014-2018 OpenRCT2 developers
*
* For a complete list of all authors, please refer to contributors.md
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
*
* OpenRCT2 is licensed under the GNU General Public License version 3.
*****************************************************************************/
#pragma once
2018-03-07 20:07:58 +01:00
#include <SDL2/SDL.h>
#include <stdexcept>
#include <string>
/**
* An exception which wraps an SDL error.
*/
class SDLException : public std::runtime_error
{
public:
explicit SDLException(const std::string& message)
: runtime_error(message.c_str())
{
SDL_GetError();
}
2018-06-22 23:22:29 +02:00
explicit SDLException(const char* message)
: runtime_error(message)
{
}
/**
* Throws an SDL exception with a message containing the given call information
* and the message given by SDL_GetError.
*/
2018-06-22 23:22:29 +02:00
static void Throw(const char* call)
{
std::string message = std::string(call) + ": " + std::string(SDL_GetError());
throw SDLException(message);
}
};