From 7ff262bc7a3e5ac16feab2fe7a0afbbe14c33896 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 5 Aug 2015 18:07:37 +0100 Subject: [PATCH] Improve error reporting, in particular from dcpomatic_create. --- src/lib/film.cc | 2 +- src/lib/job.cc | 30 ++++++++++++++++++------------ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/lib/film.cc b/src/lib/film.cc index 3e02ca4e2..5e7bab0b7 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -926,7 +926,7 @@ Film::examine_content (shared_ptr c) void Film::examine_and_add_content (shared_ptr c) { - if (dynamic_pointer_cast (c)) { + if (dynamic_pointer_cast (c) && !_directory.empty ()) { run_ffprobe (c->path(0), file ("ffprobe.log"), _log); } diff --git a/src/lib/job.cc b/src/lib/job.cc index 8c46b4962..a266fbe07 100644 --- a/src/lib/job.cc +++ b/src/lib/job.cc @@ -84,8 +84,6 @@ Job::run_wrapper () } set_error (e.what(), m); - set_progress (1); - set_state (FINISHED_ERROR); } catch (OpenFileError& e) { @@ -94,18 +92,29 @@ Job::run_wrapper () String::compose (_("DCP-o-matic could not open the file %1. Perhaps it does not exist or is in an unexpected format."), e.file().string()) ); - set_progress (1); - set_state (FINISHED_ERROR); + } catch (boost::filesystem::filesystem_error& e) { + + if (e.code() == boost::system::errc::no_such_file_or_directory) { + set_error ( + String::compose (_("Could not open %1"), e.path1().string ()), + String::compose (_("DCP-o-matic could not open the file %1. Perhaps it does not exist or is in an unexpected format."), e.path1().string()) + ); + } else { + set_error ( + e.what (), + string (_("It is not known what caused this error.")) + " " + REPORT_PROBLEM + ); + } } catch (boost::thread_interrupted &) { set_state (FINISHED_CANCELLED); + /* This is the only one that is not FINISHED_ERROR; need to return */ + return; } catch (std::bad_alloc& e) { set_error (_("Out of memory"), _("There was not enough memory to do this.")); - set_progress (1); - set_state (FINISHED_ERROR); } catch (std::exception& e) { @@ -114,19 +123,16 @@ Job::run_wrapper () string (_("It is not known what caused this error.")) + " " + REPORT_PROBLEM ); - set_progress (1); - set_state (FINISHED_ERROR); - } catch (...) { set_error ( _("Unknown error"), string (_("It is not known what caused this error.")) + " " + REPORT_PROBLEM ); - - set_progress (1); - set_state (FINISHED_ERROR); } + + set_progress (1); + set_state (FINISHED_ERROR); } /** @return true if this job is new (ie has not started running) */ -- 2.30.2