123456789101112131415161718192021222324252627282930313233 |
- #include "exception.hh"
- #include <cstdio>
- #include <cstring>
- errno_exception::errno_exception(int errno)
- : _errno(errno)
- {
- }
- int errno_exception::errno() const
- {
- return _errno;
- }
- const char *errno_exception::what()
- {
- std::snprintf(_buf, sizeof _buf, "error: %s (%d)",
- std::strerror(_errno), _errno);
- return _buf;
- }
- int try_main(int (*main)(int argc, char** argv), int argc, char** argv,
- int ret_on_exception)
- {
- try {
- return main(argc, argv);
- } catch (std::exception& e) {
- std::fprintf(stderr, "exception: %s\n", e.what());
- } catch (...) {
- std::fprintf(stderr, "unknown exception\n");
- }
- return ret_on_exception;
- }
|