The BatchLAS exception hierarchy.
Every failure BatchLAS diagnoses is thrown as one of the classes below. Each derives from the std:: exception the site threw historically (so existing handlers and the pybind11 type mapping are unchanged) and, virtually, from the empty tag batchlas::exception.
Three catches answer three questions: catch (const batchlas::workspace_error&) (a specific reason), catch (const batchlas::exception&) (anything BatchLAS diagnosed), and catch (const std::exception&) (that, plus std::bad_alloc and sycl::exception, which are deliberately not wrapped).
Definition in file error.hh.
#include <stdexcept>#include <string>#include <batchlas/export.hh>Go to the source code of this file.
Classes | |
| class | batchlas::exception |
| Empty tag base of every BatchLAS exception. More... | |
| class | batchlas::detail::exception_bridge< StdBase > |
| Derives from StdBase and, virtually, from batchlas::exception. More... | |
| class | batchlas::invalid_argument |
| The call violates the API contract. More... | |
| class | batchlas::out_of_range |
| An index is outside its container. More... | |
| class | batchlas::error |
| Base of the runtime arm: the call failed for a reason that is not a bad argument. More... | |
| class | batchlas::unsupported |
| No kernel, backend or vendor entry point in this build on this device serves the request. More... | |
| class | batchlas::device_error |
| The device or its vendor runtime failed. More... | |
| class | batchlas::workspace_error |
| The scratch the operation was handed is too small, or the allocator ran out of it. More... | |
| class | batchlas::convergence_error |
| An iterative kernel did not converge, or a factorisation broke down on the data. More... | |
| class | batchlas::internal_error |
| BatchLAS is internally inconsistent. More... | |
| class | batchlas::api_misuse |
| A well-formed call arrived in a state, order or thread where it is not valid. More... | |
Namespaces | |
| namespace | batchlas |
| namespace | batchlas::detail |