Source

z3 / src / test / ex.cpp

/*++
Copyright (c) 2006 Microsoft Corporation

Module Name:

    ex.cpp

Abstract:

    <abstract>

Author:

    Leonardo de Moura (leonardo) 2011-04-28

Revision History:

--*/
#include<iostream>
#include"z3_exception.h"

class ex {
public:
    virtual ~ex() {}
    virtual char const * msg() const = 0;
};

class ex1 : public ex {
    char const * m_msg;
public:
    ex1(char const * m):m_msg(m) {}
    virtual char const * msg() const { return m_msg; }
};

class ex2 : public ex {
    std::string m_msg;
public:
    ex2(char const * m):m_msg(m) {}
    virtual char const * msg() const { return m_msg.c_str(); }
};

static void th() {
    throw ex2("testing exception");
}

static void tst1() {
    try {
        th();
    }
    catch (ex & e) {
        std::cerr << e.msg() << "\n";
    }
}

static void tst2() {
    try {
        throw default_exception("Format %d %s", 12, "twelve");
    }
    catch (z3_exception& ex) {
        std::cerr << ex.msg() << "\n";
    }
}

void tst_ex() {
    tst1();
    tst2();
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.