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:
committed by
Facebook Github Bot
parent
5a65393b64
commit
77c77b5eb3
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user