summaryrefslogtreecommitdiff
path: root/cpp/src/slice2rb/Main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2rb/Main.cpp')
-rw-r--r--cpp/src/slice2rb/Main.cpp39
1 files changed, 38 insertions, 1 deletions
diff --git a/cpp/src/slice2rb/Main.cpp b/cpp/src/slice2rb/Main.cpp
index 25ae8098742..e55e3c7b94c 100644
--- a/cpp/src/slice2rb/Main.cpp
+++ b/cpp/src/slice2rb/Main.cpp
@@ -68,7 +68,7 @@ usage(const char* n)
}
int
-main(int argc, char* argv[])
+compile(int argc, char* argv[])
{
IceUtilInternal::Options opts;
opts.addOpt("h", "help");
@@ -259,3 +259,40 @@ main(int argc, char* argv[])
return status;
}
+
+int
+main(int argc, char* argv[])
+{
+ try
+ {
+ return compile(argc, argv);
+ }
+ catch(const IceUtil::Exception& ex)
+ {
+ cerr << ex.what() << endl;
+#ifdef __GNUC__
+ cerr << ex.ice_stackTrace() << endl;
+#endif
+ return EXIT_FAILURE;
+ }
+ catch(const std::exception& ex)
+ {
+ cerr << ex.what() << endl;
+ return EXIT_FAILURE;
+ }
+ catch(const std::string& msg)
+ {
+ cerr << msg << endl;
+ return EXIT_FAILURE;
+ }
+ catch(const char* msg)
+ {
+ cerr << msg << endl;
+ return EXIT_FAILURE;
+ }
+ catch(...)
+ {
+ cerr << "unknown exception" << endl;
+ return EXIT_FAILURE;
+ }
+}