X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/eb94901d4a40d2d7d4960cc0262e1e62f1abed65..4b0fa756ae6e58a74c374a519389ecb9e8b6a4d9:/include/simgrid/Exception.hpp diff --git a/include/simgrid/Exception.hpp b/include/simgrid/Exception.hpp index 785a9f1236..7a3447c5d4 100644 --- a/include/simgrid/Exception.hpp +++ b/include/simgrid/Exception.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2018-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2018-2020. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -61,19 +61,19 @@ public: class XBT_PUBLIC ImpossibleError : public std::logic_error { public: explicit ImpossibleError(const std::string& arg) : std::logic_error(arg) {} - ~ImpossibleError(); + ~ImpossibleError() override; }; class XBT_PUBLIC InitializationError : public std::logic_error { public: explicit InitializationError(const std::string& arg) : std::logic_error(arg) {} - ~InitializationError(); + ~InitializationError() override; }; class XBT_PUBLIC UnimplementedError : public std::logic_error { public: explicit UnimplementedError(const std::string& arg) : std::logic_error(arg) {} - ~UnimplementedError(); + ~UnimplementedError() override; }; } // namespace xbt @@ -85,12 +85,14 @@ public: : std::runtime_error(std::move(message)), throwpoint_(std::move(throwpoint)) { } - ~Exception(); // DO NOT define it here -- see Exception.cpp for a rationale + Exception(const Exception&) = default; + Exception(Exception&&) noexcept = default; + ~Exception() override; // DO NOT define it here -- see Exception.cpp for a rationale /** Return the information about where the exception was thrown */ xbt::ThrowPoint const& throw_point() const { return throwpoint_; } - std::string const resolve_backtrace() const { return throwpoint_.backtrace_.resolve(); } + std::string resolve_backtrace() const { return throwpoint_.backtrace_.resolve(); } /** Allow to carry a value (used by waitall/waitany) */ int value = 0; @@ -106,6 +108,9 @@ public: : Exception(std::move(throwpoint), std::move(message)) { } + TimeoutException(const TimeoutException&) = default; + TimeoutException(TimeoutException&&) noexcept = default; + ~TimeoutException() override; }; XBT_ATTRIB_DEPRECATED_v328("Please use simgrid::TimeoutException") typedef TimeoutException TimeoutError; @@ -117,6 +122,9 @@ public: : Exception(std::move(throwpoint), std::move(message)) { } + HostFailureException(const HostFailureException&) = default; + HostFailureException(HostFailureException&&) noexcept = default; + ~HostFailureException() override; }; /** Exception raised when a communication fails because of the network or because of the remote host */ @@ -126,6 +134,9 @@ public: : Exception(std::move(throwpoint), std::move(message)) { } + NetworkFailureException(const NetworkFailureException&) = default; + NetworkFailureException(NetworkFailureException&&) noexcept = default; + ~NetworkFailureException() override; }; /** Exception raised when a storage fails */ @@ -135,6 +146,9 @@ public: : Exception(std::move(throwpoint), std::move(message)) { } + StorageFailureException(const StorageFailureException&) = default; + StorageFailureException(StorageFailureException&&) noexcept = default; + ~StorageFailureException() override; }; /** Exception raised when a VM fails */ @@ -144,6 +158,9 @@ public: : Exception(std::move(throwpoint), std::move(message)) { } + VmFailureException(const VmFailureException&) = default; + VmFailureException(VmFailureException&&) noexcept = default; + ~VmFailureException() override; }; /** Exception raised when something got canceled before completion */ @@ -153,6 +170,9 @@ public: : Exception(std::move(throwpoint), std::move(message)) { } + CancelException(const CancelException&) = default; + CancelException(CancelException&&) noexcept = default; + ~CancelException() override; }; /** Exception raised when something is going wrong during the simulation tracing */ @@ -162,6 +182,9 @@ public: : Exception(std::move(throwpoint), std::move(message)) { } + TracingError(const TracingError&) = default; + TracingError(TracingError&&) noexcept = default; + ~TracingError() override; }; /** Exception raised when something is going wrong during the parsing of XML files */ @@ -171,6 +194,9 @@ public: : Exception(XBT_THROW_POINT, xbt::string_printf("Parse error at %s:%d: %s", file.c_str(), line, msg.c_str())) { } + ParseError(const ParseError&) = default; + ParseError(ParseError&&) noexcept = default; + ~ParseError() override; }; class XBT_PUBLIC ForcefulKillException {