From b18a76a8af3c11a56d1852cbc6e13f42dbfe0de9 Mon Sep 17 00:00:00 2001 From: Junghyun Yeon Date: Thu, 30 Jul 2020 16:18:54 +0900 Subject: [PATCH] Add try-catch statements Change-Id: Ib83a73359ab768f2af0e5bbf7e5eac52446a3ba3 Signed-off-by: Junghyun Yeon --- src/wgt_backend/wgt_backend.cc | 44 ++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/src/wgt_backend/wgt_backend.cc b/src/wgt_backend/wgt_backend.cc index c72e135..3286b08 100644 --- a/src/wgt_backend/wgt_backend.cc +++ b/src/wgt_backend/wgt_backend.cc @@ -29,27 +29,33 @@ std::unique_ptr make_unique(Args&&... args) { int main(int argc, char** argv) { ci::PkgmgrInstaller pkgmgr_installer; wgt::WgtAppQueryInterface query_interface; - auto pkgmgr = ci::PkgMgrInterface::Create(argc, argv, &pkgmgr_installer, - &query_interface); - std::unique_ptr installer_factory; - if (!pkgmgr) { - LOG(ERROR) << "Options of pkgmgr installer cannot be parsed"; - return EINVAL; - } + try { + auto pkgmgr = ci::PkgMgrInterface::Create(argc, argv, &pkgmgr_installer, + &query_interface); + std::unique_ptr installer_factory; + if (!pkgmgr) { + LOG(ERROR) << "Options of pkgmgr installer cannot be parsed"; + return EINVAL; + } #if __cplusplus >= 201300L - using std; + using std; #endif - // This is workaround for hybrid apps as they requires much different flow - // but installer does not branch at all in current design - if (query_interface.IsHybridApplication( - pkgmgr->GetRequestInfo(), pkgmgr->GetUid())) { - LOG(INFO) << "Hybrid package detected"; - ci::InstallerRunner runner( - make_unique(), pkgmgr); - return (runner.Run() == ci::AppInstaller::Result::OK) ? 0 : 1; - } else { - ci::InstallerRunner runner(make_unique(), pkgmgr); - return (runner.Run() == ci::AppInstaller::Result::OK) ? 0 : 1; + // This is workaround for hybrid apps as they requires much different flow + // but installer does not branch at all in current design + if (query_interface.IsHybridApplication( + pkgmgr->GetRequestInfo(), pkgmgr->GetUid())) { + LOG(INFO) << "Hybrid package detected"; + ci::InstallerRunner runner( + make_unique(), pkgmgr); + return (runner.Run() == ci::AppInstaller::Result::OK) ? 0 : 1; + } else { + ci::InstallerRunner runner( + make_unique(), pkgmgr); + return (runner.Run() == ci::AppInstaller::Result::OK) ? 0 : 1; + } + } catch(...) { + LOG(ERROR) << "Exception occured"; + return 1; } } -- 2.7.4