From 95eef0527973bc4fa825c9c868c13cfa42ba454f Mon Sep 17 00:00:00 2001 From: liduo Date: Wed, 2 Jul 2025 21:43:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E7=A0=81=E8=A7=84=E8=8C=83=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=A6=81=E6=AD=A2=E4=BD=BF=E7=94=A8exit=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: liduo --- src/restool.cpp | 6 +++++- src/restool_errors.cpp | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/restool.cpp b/src/restool.cpp index dfe9ae0..4aab32f 100644 --- a/src/restool.cpp +++ b/src/restool.cpp @@ -30,7 +30,11 @@ int main(int argc, char *argv[]) PrintError(GetError(ERR_CODE_UNKNOWN_COMMAND_ERROR).FormatCause("argv null")); return RESTOOL_ERROR; } - InitFaq(std::string(argv[0])); + try { + InitFaq(std::string(argv[0])); + } catch (const std::runtime_error &error) { + return RESTOOL_ERROR; + } auto &parser = CmdParser::GetInstance(); return parser.Parse(argc, argv, 1); } diff --git a/src/restool_errors.cpp b/src/restool_errors.cpp index 35d7e78..bcb572c 100644 --- a/src/restool_errors.cpp +++ b/src/restool_errors.cpp @@ -635,8 +635,8 @@ std::string ExecuteCommand(const std::string &cmd) argv[i] = nullptr; execvp(argv[0], argv); // if execvp returns, there was an error. - perror("execle failed"); - exit(EXIT_FAILURE); + perror("execvp failed"); + throw std::runtime_error("execvp failed"); } else { // parent process // close unused write end