1//============================================================================
2//
3// SSSS tt lll lll
4// SS SS tt ll ll
5// SS tttttt eeee ll ll aaaa
6// SSSS tt ee ee ll ll aa
7// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
8// SS SS tt ee ll ll aa aa
9// SSSS ttt eeeee llll llll aaaaa
10//
11// Copyright (c) 1995-2019 by Bradford W. Mott, Stephen Anthony
12// and the Stella Team
13//
14// See the file "License.txt" for information on usage and redistribution of
15// this file, and for a DISCLAIMER OF ALL WARRANTIES.
16//============================================================================
17
18#ifndef FATAL_EMULATION_ERROR_HXX
19#define FATAL_EMULATION_ERROR_HXX
20
21#include "bspf.hxx"
22
23class FatalEmulationError : public std::exception
24{
25 public:
26 explicit FatalEmulationError(const string& message) : myMessage(message) { }
27
28 const char* what() const noexcept override { return myMessage.c_str(); }
29
30 [[noreturn]] static void raise(const string& message) {
31 throw FatalEmulationError(message);
32 }
33
34 private:
35 const string myMessage;
36};
37
38#endif // FATAL_EMULATION_ERROR_HXX
39