QDebug operator<<(QDebug dbg, const ctkPluginDatabaseException& exc)
{
  dbg << "ctkPluginDatabaseException:" << exc.what();

  const char* causeMsg = exc.getCause().what();
  if (causeMsg) dbg << "  Caused by:" << causeMsg;

  return dbg.maybeSpace();
}
ctkPluginDatabaseException::ctkPluginDatabaseException(const ctkPluginDatabaseException& o)
  : std::runtime_error(o.what()),
    type(o.type), cause(o.cause)
{

}
//----------------------------------------------------------------------------
QDebug operator<<(QDebug dbg, const ctkPluginDatabaseException& exc)
{
  dbg << "ctkPluginDatabaseException:" << exc.what();

  return dbg.maybeSpace();
}