3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-22 16:45:31 +00:00
z3/src/test/ex.cpp
Nikolaj Bjorner 42894f729a add noexcept for signature compatibility
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-11-04 11:13:49 -08:00

66 lines
1 KiB
C++

/*++
Copyright (c) 2006 Microsoft Corporation
Module Name:
ex.cpp
Abstract:
<abstract>
Author:
Leonardo de Moura (leonardo) 2011-04-28
Revision History:
--*/
#include<iostream>
#include "util/z3_exception.h"
class ex : public std::exception {
public:
virtual ~ex() = default;
};
class ex1 : public ex {
char const * m_msg;
public:
ex1(char const * m):m_msg(m) {}
char const * what() const noexcept override { return m_msg; }
};
class ex2 : public ex {
std::string m_msg;
public:
ex2(char const * m):m_msg(m) {}
char const * what() const noexcept override { return m_msg.c_str(); }
};
static void th() {
throw ex2("testing exception");
}
static void tst1() {
try {
th();
}
catch (ex & e) {
std::cerr << e.what() << "\n";
}
}
static void tst2() {
try {
throw default_exception(default_exception::fmt(), "Format %d %s", 12, "twelve");
}
catch (z3_exception& ex) {
std::cerr << ex.what() << "\n";
}
}
void tst_ex() {
tst1();
tst2();
}