diff options
Diffstat (limited to 'src/StateFile.cxx')
-rw-r--r-- | src/StateFile.cxx | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/StateFile.cxx b/src/StateFile.cxx index ebf6cf576..8d17a1827 100644 --- a/src/StateFile.cxx +++ b/src/StateFile.cxx @@ -32,6 +32,8 @@ #include "util/Domain.hxx" #include "Log.hxx" +#include <exception> + #include <string.h> static constexpr Domain state_file_domain("state_file"); @@ -87,11 +89,15 @@ StateFile::Write() FormatDebug(state_file_domain, "Saving state file %s", path_utf8.c_str()); - Error error; - FileOutputStream fos(path, error); - if (!fos.IsDefined() || !Write(fos, error) || !fos.Commit(error)) { - LogError(error); - return; + try { + Error error; + FileOutputStream fos(path); + if (!Write(fos, error) || !fos.Commit(error)) { + LogError(error); + return; + } + } catch (const std::exception &e) { + LogError(e); } RememberVersions(); |