---
name: "corelinux_Exception"
section: "3"
platform: "linux"
package: "libcorelinux-dev"
version: "0.4.32-5"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/corelinux_Exception"
---

# corelinux\_Exception(3)

Exception is the base exception class used in the CoreLinux++ libraries.

## NAME

corelinux::Exception - **Exception** is the base exception class used in the CoreLinux++ libraries.

## SYNOPSIS

`#include <Exception.hpp>`

Inherited by **corelinux::AbstractFactoryException**, **corelinux::Assertion**, **corelinux::CommandFrameException**, **corelinux::CompositeException**, **corelinux::IteratorException**, **corelinux::NullPointerException**, **corelinux::SemaphoreException**, **corelinux::StorageException**, and **corelinux::ThreadException**.

### Public Types

enum **Severity** { **CONTINUABLE** =  1, **THREADFATAL**, **PROCESSFATAL**, **THREADTERMINATE**, **PROCESSTERMINATE** }\
 **Exception** *Severity States.*

### Public Member Functions

**Exception** (CharCptr why, CharCptr file, LineNum line, **Severity** severity=Exception::CONTINUABLE, bool outOfMemory=false)\
 *Default Constructor.*  **Exception** (**ExceptionCref** crOther)\
 *Copy constructor.*  virtual **~Exception** (void)\
 *Virtual Destructor.*  **ExceptionRef** **operator=** (**ExceptionCref** otherRef)\
 *Assignment operator overload.*  bool **operator==** (**ExceptionCref** otherRef)\
 *Comparisson operator overload.*  const  std::string & **getFile** (void) const \
 *Accessor.*  LineNumCref **getLine** (void) const \
 *Accessor.*  const  std::string & **getWhy** (void) const \
 *Accessor.*  const  **Severity** & **getSeverity** (void) const \
 *Accessor.*  const  std::string & **getUnwind** (void) const \
 *Accessor.*  bool **isOutOfMemory** (void) const \
 *Accessor.*  void **addUnwindInfo** (CharCptr unwindInfo)\
 *Append unwind information to the* **Exception***.*  void **setThreadFatalSeverity** (void)\
 *Change the severity to Severity::THREADFATAL.*  void **setProcessFatalSeverity** (void)\
 *Change the severity to Severity::PROCESSFATAL.*  void **setThreadTerminateSeverity** (void)\
 *Change the severity to Severity::THREADTERMINATE.*  void **setProcessTerminateSeverity** (void)\
 *Change the severity to Severity::PROCESSTERMINATE.*

### Protected Member Functions

**Exception** (void)\
 *Exceptions must have a reason.*  **Exception** (CharCptr file, LineNum line, **Severity** severity=Exception::CONTINUABLE, bool outOfMemory=false)\
 **Exception** *constructor for use by derivations.*  void **setWhy** (const  std::string &)\
 *Changes the exception reason.*  void **setWhy** (CharCptr)\
 *Changes the exception reason.*

## Detailed Description

**Exception** is the base exception class used in the CoreLinux++ libraries.

It is provided to support a rich base from which domain Exceptions may derive.

## Member Enumeration Documentation

### enum corelinux::Exception::Severity

**Exception** Severity States.

**Enumeration values:**

- *THREADFATAL*

  *System can continue processing.*

- *PROCESSFATAL*

  **Exception** *may prove to be thread fatal.*

- *THREADTERMINATE*

  **Exception** *may prove to be process fatal.*

- *PROCESSTERMINATE*

  *System should exit.*

## Constructor & Destructor Documentation

### corelinux::Exception::Exception (CharCptr why, CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false)

*Default Constructor.* **Parameters:**

*why describes why the exception was thrown* \
 *file The source module throwing the exception* \
 *line The line of source throwing the exception* \
 *severity The* **Exception::Severity** *of the* **Exception** \
 *outOfMemory An out of memory indicator*

### corelinux::Exception::Exception (ExceptionCref crOther)

*Copy constructor.* **Parameters:**

*Exception const reference*

### corelinux::Exception::Exception (void)` [protected]`

*Exceptions must have a reason. Default constructor is not allowed.*

## Member Function Documentation

### void corelinux::Exception::addUnwindInfo (CharCptr unwindInfo)

*Append unwind information to the* **Exception***. Clients should use this service to identify themselves and specify any changes to severity.*

### const std::string & corelinux::Exception::getFile (void) const

*Accessor.* **Returns:**

*Const reference to module name where* **Exception** *was thrown*

### LineNumCref corelinux::Exception::getLine (void) const

*Accessor.* **Returns:**

*Const reference to line number in module where* **Exception** *was thrown*

### const Exception::Severity & corelinux::Exception::getSeverity (void) const

*Accessor.* **Returns:**

*Const reference to Severity of* **Exception***.*

### const std::string & corelinux::Exception::getUnwind (void) const

*Accessor.* **Returns:**

*Const reference to the unwind stack description.*

### const std::string & corelinux::Exception::getWhy (void) const

*Accessor.* **Returns:**

*Const reference to* **Exception** *explanation.*

### bool corelinux::Exception::isOutOfMemory (void) const` [inline]`

*Accessor.* **Returns:**

*true if out of memory exception, false otherwise*

### ExceptionRef corelinux::Exception::operator= (ExceptionCref otherRef)

*Assignment operator overload.* **Parameters:**

*Exception const reference*

**Returns:**

**Exception** *reference to self*

### bool corelinux::Exception::operator== (ExceptionCref otherRef)

*Comparisson operator overload.* **Parameters:**

*Exception const reference*

**Returns:**

*true if equal, false otherwise*

### void corelinux::Exception::setProcessTerminateSeverity (void)

*Change the severity to Severity::PROCESSTERMINATE. This is useful to the catcher that the process should exit*

### void corelinux::Exception::setThreadTerminateSeverity (void)

*Change the severity to Severity::THREADTERMINATE. This is useful to the catcher that the thread should be cleaned up.*

## Author

*Generated automatically by Doxygen for CoreLinux++ from the source code.*
