Next: , Up: cclibraries  


CCExceptions, exception handling for the C language

Overview

This package installs a C11 language library; it implements an interface to non–local exits, which is somewhat similar to exceptions handling. The library targets posix systems.

This project is still in the development phase; the project is hosted at Github and as backup at Bitbucket.

Introduction

Non–local exits are a way to transfer execution from one point to another in a program; they are implemented by the standard C library through the setjmp() and longjmp() functions. CCExceptions uses the posix variants sigsetjmp() and siglongjmp().

The main usage pattern for the library’s facilities is the following:

cce_location_t  L[1];

if (cce_location(L)) {
  /* handle the exception here */
  cce_run_clean_handlers_final(L);
} else {
  /* do something useful here */
  cce_run_body_handlers(L);
}

License

CCExceptions is free software: you can redistribute it and/or modify it under the terms of the gnu Lesser General Public License, either version 3 of the License, or (at your option) any later version.

Downloads

The package release archives (tarballs) can be downloaded from the download pages at Bitbucket. End users should stick to official releases. It should be possible to run CCExceptions on posix systems.

The development revisions can be downloaded directly from the GitHub project page.

Reporting errors and vulnerabilities

Error and vulnerability reports are appreciated, all the vulnerability reports are public; register them using the Issue Tracker at the project’s GitHub site. For contributions and patches please use the Pull Requests feature at the project’s GitHub site.

Contributions

Contributions are welcome. For contributions and patches please use the Pull Requests feature at the project’s GitHub site. Code must come in standard C11 language; there are no strict coding conventions. The hierarchy of built–in condition objects can be augmented following the same coding practices already used in the library


Next: , Up: cclibraries