# BasicException.h File Reference

`#include "BasicFileLocation.h"`
`#include "BasicSmartPointer.h"`
`#include "BasicDebugger.h"`
`#include "Zap.h"`
`#include <string>`
`#include <iostream>`

Include dependency graph for BasicException.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes

class | BasicException
| BasicException is a general purpose exception class. More...

## Defines

#define | THROW(msg) throw BasicException((msg), FILE_LOCATION)
#define | THROWC(msg, cause) throw BasicException((msg), FILE_LOCATION, (cause))
#define | ASSERT_OR_THROW(msg, condition) {if (!(condition)) THROW(msg);}

## Functions

std::ostream & | operator<< (std::ostream &stream, const BasicException &e)
| An stream output operator for BasicException.

## Define Documentation

#define ASSERT_OR_THROW | ( | msg,
|  | condition |  | ) | {if (!(condition)) THROW(msg);}

#define THROW | ( | msg |  | ) | throw BasicException((msg), FILE_LOCATION)

#define THROWC | ( | msg,
|  | cause |  | ) | throw BasicException((msg), FILE_LOCATION, (cause))

## Function Documentation

std::ostream& operator<< | ( | std::ostream & | stream,
|  | const BasicException & | e
| ) | `[inline]`

| An stream output operator for BasicException. This allows you to print the text of an exception to a stream like so: . . . } catch (BasicException &e) { cout << e << endl; return 0; }