This implements the exception hiearchy for Mezzanine. More...
#include "datatypes.h"
Go to the source code of this file.
Classes | |
class | Mezzanine::ArithmeticException |
Thrown when Math has failed. More... | |
class | Mezzanine::DirectoryException |
Thrown when there is an unknown issue with a file. More... | |
class | Mezzanine::DirectoryNotFoundException |
Thrown when a directory was expected to be there, but was not. More... | |
class | Mezzanine::DirectoryPermissionException |
Thrown when permission is denied to a directory. More... | |
class | Mezzanine::DirectoryReadException |
Thrown when a directory could be read and it wasn't a permission issue. More... | |
class | Mezzanine::DirectoryWriteException |
Thrown when a directory could be written to and it wasn't a permission issue. More... | |
class | Mezzanine::ExceptionBase |
This is the exception thrown by most Mezzanine systems that can throw exceptions. More... | |
struct | Mezzanine::ExceptionFactory< N > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< ArithmeticException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< DirectoryException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< DirectoryNotFoundException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< DirectoryPermissionException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< DirectoryReadException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< DirectoryWriteException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< FileException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< FileNotFoundException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< FilePermissionException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< FileReadException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< FileWriteException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< InstanceIdentityDuplicateException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< InstanceIdentityException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< InstanceIdentityInvalidException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< InstanceIdentityNotFoundException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< InternalException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< InvalidAssignment::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< InvalidStateException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< InvalidVersionException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< IOException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< IOReadException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< IOWriteException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< MemoryManagementException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< MemoryOutOfBoundsException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< NetworkException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< NetworkNotFoundException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< NetworkPermissionException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< NetworkReadException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< NetworkURLException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< NetworkWriteException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< NotImplementedException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< OutOfMemoryException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< ParametersCastException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< ParametersException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< ParametersRangeException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< RenderingAPIException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< RuntimeAssertionException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< ScriptException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< ScriptLuaErrErrException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< ScriptLuaException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< ScriptLuaRuntimeException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< ScriptLuaYieldException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< SyntaxErrorException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< SyntaxErrorLuaException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< SyntaxErrorXMLException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
struct | Mezzanine::ExceptionFactory< SyntaxErrorXPathException::ExceptionCode > |
Template class that serves as the base for exception factories. More... | |
class | Mezzanine::FileException |
Thrown when there is an unknown issue with a file. More... | |
class | Mezzanine::FileNotFoundException |
Thrown when a file was expected to be there, but was not. More... | |
class | Mezzanine::FilePermissionException |
Thrown when permission was denied to a file. More... | |
class | Mezzanine::FileReadException |
Thrown when a file could not be read and permissions seem to not be an issue (Filesystem/hardware issue? More... | |
class | Mezzanine::FileWriteException |
Thrown when a file could not be written and perimssions seem not to be an issue. More... | |
class | Mezzanine::InstanceIdentityDuplicateException |
Thrown when duplicates of teh same identity string exist. More... | |
class | Mezzanine::InstanceIdentityException |
Thrown when an unknown error with using an Identifier and it is invalid. More... | |
class | Mezzanine::InstanceIdentityInvalidException |
Thrown when the identity string wasn't valid at all. More... | |
class | Mezzanine::InstanceIdentityNotFoundException |
Thrown when the requested identity could not be found. More... | |
class | Mezzanine::InternalException |
Thrown when an unknown internal error occurred. More... | |
class | Mezzanine::InvalidAssignment |
Thrown when a complex class is assigned to itself or other invalid assignments occur. More... | |
class | Mezzanine::InvalidStateException |
Thrown when the available information should have worked but failed for unknown reasons. More... | |
class | Mezzanine::InvalidVersionException |
Thrown when a version is accessed/parsed/required and it cannot work correctly or is missing. More... | |
class | Mezzanine::IOException |
Thrown when there was an issue with IO but very little was known about it. More... | |
class | Mezzanine::IOReadException |
Thrown when a read is happening but something has prevented the underlying code from knowing what was reading. More... | |
class | Mezzanine::IOWriteException |
Thrown when a write is happening but something has prevented the underlying code from knowing what was writing. More... | |
class | Mezzanine::MemoryManagementException |
Thrown when an unknown memory management exception occurs. More... | |
class | Mezzanine::MemoryOutOfBoundsException |
Thrown when attempted to access something that really should note be accessed. More... | |
class | Mezzanine::NetworkException |
Thrown when something unknown causes network IO to fail. More... | |
class | Mezzanine::NetworkNotFoundException |
Thrown when no network connection is available. More... | |
class | Mezzanine::NetworkPermissionException |
Thrown when permision was denied to a network interface or network resource. More... | |
class | Mezzanine::NetworkReadException |
Thrown when data could not be read from the network (downloads) More... | |
class | Mezzanine::NetworkURLException |
Thrown when an address is invalid or could not be found. More... | |
class | Mezzanine::NetworkWriteException |
Thrown when data could not be read from the network (iloads) More... | |
class | Mezzanine::NotImplementedException |
Thrown when we just have not coded a thing yet, but we knew what the API should look like. More... | |
class | Mezzanine::OutOfMemoryException |
Thrown when A memory allocation was attempted and failed. More... | |
class | Mezzanine::ParametersCastException |
Thrown when a pointer parameter is checked at runtime and cannot be cast as expected. More... | |
class | Mezzanine::ParametersException |
Thrown when parameters are checked at runtime and found invalid. More... | |
class | Mezzanine::ParametersRangeException |
Thrown when a passed parameter is checked at runtime and not in the expected range. More... | |
class | Mezzanine::RenderingAPIException |
Thrown when the graphics card/DirectX/OpenGL fail. More... | |
class | Mezzanine::RuntimeAssertionException |
Thrown when a rutime assertion could have been Thrown. More... | |
class | Mezzanine::ScriptException |
Thrown when an unknown error happens with a script. More... | |
class | Mezzanine::ScriptLuaErrErrException |
Thrown when Lua has an error handling an error. More... | |
class | Mezzanine::ScriptLuaException |
Thrown when an unknown error happens in a Lua script. More... | |
class | Mezzanine::ScriptLuaRuntimeException |
Thrown when a Lua script has a runtime error. More... | |
class | Mezzanine::ScriptLuaYieldException |
Thrown when Lua returns a yield and it should not have. More... | |
class | Mezzanine::SyntaxErrorException |
Thrown when some kind of syntax exception. More... | |
class | Mezzanine::SyntaxErrorLuaException |
Thrown when lua code in incorrect. More... | |
class | Mezzanine::SyntaxErrorXMLException |
Thrown when and XML document is being parsed but is invalid. More... | |
class | Mezzanine::SyntaxErrorXPathException |
Thrown when an XPath query is being parsed but is invalid. More... | |
Namespaces | |
Mezzanine | |
The bulk of the engine components go in this namspace. | |
Macros | |
#define | MEZZ_EXCEPTION(num, desc) throw Mezzanine::ExceptionFactory<num>::Type(desc, __func__, __FILE__, __LINE__ ); |
An easy way to throw exceptions with rich information. More... | |
This implements the exception hiearchy for Mezzanine.
Definition in file exception.h.
#define MEZZ_EXCEPTION | ( | num, | |
desc | |||
) | throw Mezzanine::ExceptionFactory<num>::Type(desc, __func__, __FILE__, __LINE__ ); |
An easy way to throw exceptions with rich information.
An important part of troubleshooting errors from the users perspective is being able to tie a specific 'fix' to a specific error message. An important part of that is catching the right exceptions at the right time. It is also important to not allocate more memory or other resources while creating an exception.
This macro makes doing all of these easy. Every exception thrown by this macro with provide the function name, the file name and the line in the file from which it was thrown. That provides all the information the developer needs to identify the issue. This uses some specific template machinery to generate specifically typed exceptions static instances at compile to insure the behaviors a programmer needs. Since these are allocated (optimized out really) when the program is first loaded so there will be no allocations when this is called, and the type is controlled by the error number parameter.
As long as the developer provides a unique string for each failure, then any messages logged or presented to the user or log will uniquely identify that specific problem. This allows the user to perform very specific web searches and potentially allows troubleshooters/technicians to skip lengthy diagnostics steps.
num | A specific code from the ExceptionBase::ExceptionCodes enum will control the type of exception produced. |
desc | A message/description to be passed through to the exceptions constructor. |
Definition at line 3048 of file exception.h.