This project provides libraries for Java to make exception handling in applications and libraries easier.

With this library you may define exceptions with unique codes that are helpful to reference information about problems encountered by a software system. You may know such codes from software you already use, like:

Exception message with code
WELD-001408 Unsatisfied dependencies for type ...
JBREM000200: Remote connection failed: Unrecognized SSL message, plaintext connection?
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1]

Disclaimer: Please note that the software we mention here do not use smartics-exceptions! We mention those codes here to show how important those codes are for libraries and applications alike.

Key Benefits

Summarizing, this project addresses the following services commonly required for application, be them libraries, standalone or distributed multi-tier enterprise applications:

  1. Unique exception identifier
  2. Exception code
  3. Report generation for exceptions codes
  4. Raise time of the exception
  5. Internationalization

And visually:

Topic Screenshot
Stack trace
Exception codes report

This project also provides best practices for dealing with exceptions.

If you want to read about requirements this library provides an implementation for in User Requirements.


The services (core and i18n) are implemented by different modules so that only those services that are relevant to you are deployed. So, for instance, if you do not need internationalization, you simply do not deploy that module.


The i18n module is optional and provides internationalization support.

  1. Internationalization
  2. Annotations for mapping exception properties to message variables.

Maven Plugin

The exceptioncodes-maven-plugin generates a Maven report on the exception codes. There is also a build mojo to generate XML reports that may processed further with other tools.

If you want to write other kinds of reports and not build upon XML, you may want to use the report library smart-exceptions-report.

And now?

You may continue with the Quickstart to get started with using smartics-exceptions quickly.

The User Documentation provides an index over the available documentation.