libzypp: zypp-core/base/Exception.h File Reference

libzypp 17.38.13

Exception.h File Reference
`#include <iosfwd>`
`#include <string>`
`#include <list>`
`#include <stdexcept>`
`#include <typeinfo>`
`#include <type_traits>`
`#include <utility>`
`#include <zypp-core/base/Errno.h>`

Go to the source code of this file.

## Classes
struct | zypp::exception_detail::CodeLocation
| Keep FILE, FUNCTION and LINE. More...
class | zypp::Exception
| Base class for Exception. More...

## Namespaces
namespace | zypp
| Easy-to use interface to the ZYPP dependency resolver.
namespace | zypp::exception_detail

## Macros
#define | ZYPP_EX_CODELOCATION ::zypp::exception_detail::CodeLocation(( *__FILE__ == '/' ? strrchr( __FILE__, '/' ) + 1 : __FILE__ ),__FUNCTION__,__LINE__)
| Create CodeLocation object storing the current location.
#define | ZYPP_THROW(EXCPT)
| Drops a logline and throws the Exception.
#define | ZYPP_EXCPT_PTR(EXCPT)
| Drops a logline and returns Exception as a std::exception_ptr.
#define | ZYPP_FWD_EXCPT(EXCPT)
| Drops a logline and returns the given Exception as a std::exception_ptr.
#define | ZYPP_FWD_CURRENT_EXCPT()
| Drops a logline and returns the current Exception as a std::exception_ptr.
#define | ZYPP_CAUGHT(EXCPT)
| Drops a logline telling the Exception was caught (in order to handle it).
#define | ZYPP_RETHROW(EXCPT)
| Drops a logline and rethrows, updating the CodeLocation.
#define | ZYPP_THROW_MSG(EXCPTTYPE, MSG)
| Throw Exception built from a message string.
#define | ZYPP_THROW_ERRNO(EXCPTTYPE)
| Throw Exception built from errno.
#define | ZYPP_THROW_ERRNO1(EXCPTTYPE, ERRNO)
| Throw Exception built from errno provided as argument.
#define | ZYPP_THROW_ERRNO_MSG(EXCPTTYPE, MSG)
| Throw Exception built from errno and a message string.
#define | ZYPP_THROW_ERRNO_MSG1(EXCPTTYPE, ERRNO, MSG)
| Throw Exception built from errno provided as argument and a message string.

## Typedefs
template<class TExcpt>
using | zypp::exception_detail::EnableIfIsException = std::enable_if_t< std::is_base_of_v<Exception,TExcpt>, int>
| SFINAE: Hide template signature unless TExcpt is derived from Exception.
template<class TExcpt>
using | zypp::exception_detail::EnableIfNotException = std::enable_if_t< !std::is_base_of_v<Exception,TExcpt>, int>
| SFINAE: Hide template signature if TExcpt is derived from Exception.

## Functions
std::ostream & | zypp::exception_detail::operator<< (std::ostream &str, const CodeLocation &obj)
| relates: CodeLocation Stream output
std::ostream & | zypp::operator<< (std::ostream &str, const Exception &obj)
| relates: Exception Stream output
std::ostream & | zypp::operator<< (std::ostream &str, const std::exception_ptr &excptPtr) ZYPP_API
| Log a std::excepion_ptr.
template<class TExcpt, EnableIfIsException< TExcpt > = 0>
void | zypp::exception_detail::do_ZYPP_THROW (const TExcpt &excpt_r, const CodeLocation &where_r) __attribute__((noreturn))
| Helper for ZYPP_THROW( Exception ).
template<class TExcpt, EnableIfIsException< TExcpt > = 0>
void | zypp::exception_detail::do_ZYPP_THROW (const TExcpt &excpt_r, CodeLocation &&where_r) __attribute__((noreturn))
template<class TExcpt, EnableIfNotException< TExcpt > = 0>
void | zypp::exception_detail::do_ZYPP_THROW (const TExcpt &excpt_r, const CodeLocation &where_r) __attribute__((noreturn))
| Helper for ZYPP_THROW( not Exception ).
template<class TExcpt, EnableIfIsException< TExcpt > = 0>
void | zypp::exception_detail::do_ZYPP_CAUGHT (const TExcpt &excpt_r, const CodeLocation &where_r)
| Helper for ZYPP_THROW( Exception ).
template<class TExcpt, EnableIfNotException< TExcpt > = 0>
void | zypp::exception_detail::do_ZYPP_CAUGHT (const TExcpt &excpt_r, const CodeLocation &where_r)
| Helper for ZYPP_THROW( not Exception ).
void | zypp::exception_detail::do_ZYPP_CAUGHT (const std::exception_ptr &excpt_r, CodeLocation &&where_r)
| Helper for std::exception_ptr.
template<class TExcpt, EnableIfIsException< TExcpt > = 0>
void | zypp::exception_detail::do_ZYPP_RETHROW (const TExcpt &excpt_r, const CodeLocation &where_r) __attribute__((noreturn))
| Helper for ZYPP_THROW( Exception ).
template<class TExcpt, EnableIfIsException< TExcpt > = 0>
void | zypp::exception_detail::do_ZYPP_RETHROW (const TExcpt &excpt_r, CodeLocation &&where_r) __attribute__((noreturn))
template<class TExcpt, EnableIfNotException< TExcpt > = 0>
void | zypp::exception_detail::do_ZYPP_RETHROW (const TExcpt &excpt_r, const CodeLocation &where_r) __attribute__((noreturn))
| Helper for ZYPP_THROW( not Exception ).
void | zypp::exception_detail::do_ZYPP_RETHROW (const std::exception_ptr &excpt_r, const CodeLocation &where_r)
template<class TExcpt>
std::exception_ptr | zypp::exception_detail::do_ZYPP_EXCPT_PTR (TExcpt &&excpt_r, CodeLocation &&where_r)
| Helper for ZYPP_EXCPT_PTR( Exception ).
std::exception_ptr | zypp::exception_detail::do_ZYPP_FWD_EXCPT_PTR (const std::exception_ptr &excpt_r, CodeLocation &&where_r)
| Helper for ZYPP_FWD_CURRENT_EXCPT().

## Macro Definition Documentation

## ◆ ZYPP_EX_CODELOCATION

#define ZYPP_EX_CODELOCATION ::zypp::exception_detail::CodeLocation(( *__FILE__ == '/' ? strrchr( __FILE__, '/' ) + 1 : __FILE__ ),__FUNCTION__,__LINE__)

Create CodeLocation object storing the current location.

Definition at line 69 of file Exception.h.

## ◆ ZYPP_THROW

#define ZYPP_THROW | ( |  | EXCPT | ) |

Value:
::zypp::exception_detail::do_ZYPP_THROW( EXCPT, ZYPP_EX_CODELOCATION )
ZYPP_EX_CODELOCATION
#define ZYPP_EX_CODELOCATION
Create CodeLocation object storing the current location.
Definition Exception.h:69
zypp::exception_detail::do_ZYPP_THROW
void do_ZYPP_THROW(const TExcpt &excpt_r, const CodeLocation &where_r) __attribute__((noreturn))
Helper for ZYPP_THROW( Exception ).
Definition Exception.h:355

Drops a logline and throws the Exception.

Definition at line 459 of file Exception.h.

## ◆ ZYPP_EXCPT_PTR

#define ZYPP_EXCPT_PTR | ( |  | EXCPT | ) |

Value:
::zypp::exception_detail::do_ZYPP_EXCPT_PTR( EXCPT, ZYPP_EX_CODELOCATION )
zypp::exception_detail::do_ZYPP_EXCPT_PTR
std::exception_ptr do_ZYPP_EXCPT_PTR(TExcpt &&excpt_r, CodeLocation &&where_r)
Helper for ZYPP_EXCPT_PTR( Exception ).
Definition Exception.h:435

Drops a logline and returns Exception as a std::exception_ptr.

Definition at line 463 of file Exception.h.

## ◆ ZYPP_FWD_EXCPT

#define ZYPP_FWD_EXCPT | ( |  | EXCPT | ) |

Value:
::zypp::exception_detail::do_ZYPP_FWD_EXCPT_PTR( EXCPT, ZYPP_EX_CODELOCATION )
zypp::exception_detail::do_ZYPP_FWD_EXCPT_PTR
std::exception_ptr do_ZYPP_FWD_EXCPT_PTR(const std::exception_ptr &excpt_r, CodeLocation &&where_r)
Helper for ZYPP_FWD_CURRENT_EXCPT().
Definition Exception.cc:60

Drops a logline and returns the given Exception as a std::exception_ptr.

Definition at line 467 of file Exception.h.

## ◆ ZYPP_FWD_CURRENT_EXCPT

#define ZYPP_FWD_CURRENT_EXCPT | ( |  | ) |

Value:
::zypp::exception_detail::do_ZYPP_FWD_EXCPT_PTR( std::current_exception(), ZYPP_EX_CODELOCATION )

Drops a logline and returns the current Exception as a std::exception_ptr.

Definition at line 471 of file Exception.h.

## ◆ ZYPP_CAUGHT

#define ZYPP_CAUGHT | ( |  | EXCPT | ) |

Value:
::zypp::exception_detail::do_ZYPP_CAUGHT( EXCPT, ZYPP_EX_CODELOCATION )
zypp::exception_detail::do_ZYPP_CAUGHT
void do_ZYPP_CAUGHT(const std::exception_ptr &excpt_r, CodeLocation &&where_r)
Helper for std::exception_ptr.
Definition Exception.cc:77

Drops a logline telling the Exception was caught (in order to handle it).

Definition at line 475 of file Exception.h.

## ◆ ZYPP_RETHROW

#define ZYPP_RETHROW | ( |  | EXCPT | ) |

Value:
::zypp::exception_detail::do_ZYPP_RETHROW( EXCPT, ZYPP_EX_CODELOCATION )
zypp::exception_detail::do_ZYPP_RETHROW
void do_ZYPP_RETHROW(const std::exception_ptr &excpt_r, const CodeLocation &where_r)
Definition Exception.cc:41

Drops a logline and rethrows, updating the CodeLocation.

Definition at line 479 of file Exception.h.

## ◆ ZYPP_THROW_MSG

#define ZYPP_THROW_MSG | ( |  | EXCPTTYPE,
|  |  | MSG )

Value:
ZYPP_THROW( EXCPTTYPE( MSG ) )
ZYPP_THROW
#define ZYPP_THROW(EXCPT)
Drops a logline and throws the Exception.
Definition Exception.h:459

Throw Exception built from a message string.

Definition at line 484 of file Exception.h.

## ◆ ZYPP_THROW_ERRNO

#define ZYPP_THROW_ERRNO | ( |  | EXCPTTYPE | ) |

Value:
ZYPP_THROW( EXCPTTYPE( ::zypp::Exception::strErrno(errno) ) )
zypp::Exception::strErrno
static std::string strErrno(int errno_r)
Make a string from errno_r.
Definition Exception.cc:233

Throw Exception built from errno.

Definition at line 488 of file Exception.h.

## ◆ ZYPP_THROW_ERRNO1

#define ZYPP_THROW_ERRNO1 | ( |  | EXCPTTYPE,
|  |  | ERRNO )

Value:
ZYPP_THROW( EXCPTTYPE( ::zypp::Exception::strErrno(ERRNO) ) )

Throw Exception built from errno provided as argument.

Definition at line 492 of file Exception.h.

## ◆ ZYPP_THROW_ERRNO_MSG

#define ZYPP_THROW_ERRNO_MSG | ( |  | EXCPTTYPE,
|  |  | MSG )

Value:
ZYPP_THROW( EXCPTTYPE( ::zypp::Exception::strErrno(errno,MSG) ) )

Throw Exception built from errno and a message string.

Definition at line 496 of file Exception.h.

## ◆ ZYPP_THROW_ERRNO_MSG1

#define ZYPP_THROW_ERRNO_MSG1 | ( |  | EXCPTTYPE,
|  |  | ERRNO,
|  |  | MSG )

Value:
ZYPP_THROW( EXCPTTYPE( ::zypp::Exception::strErrno(ERRNO,MSG) ) )

Throw Exception built from errno provided as argument and a message string.

Definition at line 500 of file Exception.h.