Spinning Topp Logo BlackTopp Studios
inc
Classes | Namespaces | Macros
exception.h File Reference

This implements the exception hiearchy for Mezzanine. More...

#include "datatypes.h"
+ Include dependency graph for exception.h:
+ This graph shows which files directly or indirectly include this file:

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...
 

Detailed Description

This implements the exception hiearchy for Mezzanine.

Warning
This file is automatically generated. If you change it your changes wil not persist.

Definition in file exception.h.

Macro Definition Documentation

#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.

Parameters
numA specific code from the ExceptionBase::ExceptionCodes enum will control the type of exception produced.
descA message/description to be passed through to the exceptions constructor.

Definition at line 3048 of file exception.h.