Files
flipper/xplat/Flipper/FlipperStep.cpp
John Knox 77c77b5eb3 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
2019-02-19 03:46:55 -08:00

40 lines
869 B
C++

/**
* 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;
state->success(name);
}
void FlipperStep::fail(std::string message) {
isLogged = true;
state->failed(name, message);
}
FlipperStep::FlipperStep(std::string step, FlipperState* s) {
state = s;
name = step;
}
FlipperStep::~FlipperStep() {
if (!isLogged) {
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");
}
}
}