diff options
author | Bernard Normier <bernard@zeroc.com> | 2006-06-21 14:35:42 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2006-06-21 14:35:42 +0000 |
commit | e35e9c61512f6e0dd290f91f005630ab60bca8a0 (patch) | |
tree | 8277c087f1090835402bed5307a3a0fc03c5bedd /cpp/src/Ice/Application.cpp | |
parent | reversing change to file string template (diff) | |
download | ice-e35e9c61512f6e0dd290f91f005630ab60bca8a0.tar.bz2 ice-e35e9c61512f6e0dd290f91f005630ab60bca8a0.tar.xz ice-e35e9c61512f6e0dd290f91f005630ab60bca8a0.zip |
Fix for bug #1112
Diffstat (limited to 'cpp/src/Ice/Application.cpp')
-rw-r--r-- | cpp/src/Ice/Application.cpp | 59 |
1 files changed, 49 insertions, 10 deletions
diff --git a/cpp/src/Ice/Application.cpp b/cpp/src/Ice/Application.cpp index b808ab33336..8bee23ebe60 100644 --- a/cpp/src/Ice/Application.cpp +++ b/cpp/src/Ice/Application.cpp @@ -227,11 +227,33 @@ Ice::Application::main(int argc, char* argv[]) int Ice::Application::main(int argc, char* argv[], const char* configFile) { + // + // We don't call the main below to avoid a deprecated warning + // + InitializationData initData; if(configFile) { - initData.properties = createProperties(); - initData.properties->load(configFile); + try + { + initData.properties = createProperties(); + initData.properties->load(configFile); + } + catch(const IceUtil::Exception& ex) + { + cerr << argv[0] << ": " << ex << endl; + return EXIT_FAILURE; + } + catch(const std::exception& ex) + { + cerr << argv[0] << ": std::exception: " << ex.what() << endl; + return EXIT_FAILURE; + } + catch(...) + { + cerr << argv[0] << ": unknown exception" << endl; + return EXIT_FAILURE; + } } return main(argc, argv, initData); } @@ -243,8 +265,26 @@ Ice::Application::main(int argc, char* argv[], const char* configFile, const Ice InitializationData initData; if(configFile) { - initData.properties = createProperties(); - initData.properties->load(configFile); + try + { + initData.properties = createProperties(); + initData.properties->load(configFile); + } + catch(const IceUtil::Exception& ex) + { + cerr << argv[0] << ": " << ex << endl; + return EXIT_FAILURE; + } + catch(const std::exception& ex) + { + cerr << argv[0] << ": std::exception: " << ex.what() << endl; + return EXIT_FAILURE; + } + catch(...) + { + cerr << argv[0] << ": unknown exception" << endl; + return EXIT_FAILURE; + } } initData.logger = logger; return main(argc, argv, initData); @@ -258,12 +298,6 @@ Ice::Application::main(int argc, char* argv[], const InitializationData& initDat cerr << argv[0] << ": only one instance of the Application class can be used" << endl; return EXIT_FAILURE; } - - if(_condVar.get() == 0) - { - _condVar.reset(new Cond); - } - int status; try @@ -277,6 +311,11 @@ Ice::Application::main(int argc, char* argv[], const InitializationData& initDat try { + if(_condVar.get() == 0) + { + _condVar.reset(new Cond); + } + _interrupted = false; _appName = argv[0]; |