Don't throw exceptions from FlipperStep destructor

Summary: Destructors should never throw, because if they are destructed while an exception is unwinding the stack the program will terminate.

Reviewed By: passy

Differential Revision: D14124423

fbshipit-source-id: 4b3d21663d44160bf24adacca25f50522d952e7c
This commit is contained in:
John Knox
2019-02-19 03:43:07 -08:00
committed by Facebook Github Bot
parent 5a65393b64
commit 77c77b5eb3

View File

@@ -1,12 +1,14 @@
/*
* Copyright (c) 2018-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the LICENSE
* file in the root directory of this source tree.
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the LICENSE
* file in the root directory of this source tree.
*/
#include "FlipperStep.h"
#include "FlipperState.h"
#include "Log.h"
using facebook::flipper::log;
void FlipperStep::complete() {
isLogged = true;
@@ -25,6 +27,13 @@ FlipperStep::FlipperStep(std::string step, FlipperState* s) {
FlipperStep::~FlipperStep() {
if (!isLogged) {
state->failed(name, "");
try {
state->failed(name, "");
} catch (std::exception& e) {
log(std::string("Exception occurred in FlipperStep destructor: ") +
e.what());
} catch (...) {
log("Exception occurred in FlipperStep destructor");
}
}
}