X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fexceptions.cc;h=3991c57b97ab98608ed280d02d581827fecdfae5;hb=001ba1644fc6aa54f91fcaaa62ae7e5de2313bc1;hp=4590531b7bd5a8cabe73d70650dd5b96467083bd;hpb=ad46791780c9e59d001b63a74251ebc1f46cd36c;p=dcpomatic.git diff --git a/src/lib/exceptions.cc b/src/lib/exceptions.cc index 4590531b7..3991c57b9 100644 --- a/src/lib/exceptions.cc +++ b/src/lib/exceptions.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2014 Carl Hetherington + Copyright (C) 2012-2020 Carl Hetherington This file is part of DCP-o-matic. @@ -25,12 +25,14 @@ using std::string; using std::runtime_error; +using boost::optional; /** @param f File that we were trying to open */ -OpenFileError::OpenFileError (boost::filesystem::path f, int error, bool reading) +OpenFileError::OpenFileError (boost::filesystem::path f, int error, Mode mode) : FileError ( String::compose ( - reading ? _("could not open file %1 for reading (%2)") : _("could not open file %1 for writing (%2)"), + mode == READ_WRITE ? _("could not open file %1 for read/write (%2)") : + (mode == READ ? _("could not open file %1 for read (%2)") : _("could not open file %1 for write (%2)")), f.string(), error), f @@ -39,6 +41,13 @@ OpenFileError::OpenFileError (boost::filesystem::path f, int error, bool reading } +FileNotFoundError::FileNotFoundError (boost::filesystem::path f) + : runtime_error(String::compose("File %1 not found", f.string())) + , _file (f) +{ + +} + ReadFileError::ReadFileError (boost::filesystem::path f, int e) : FileError (String::compose (_("could not read from file %1 (%2)"), f.string(), strerror (e)), f) { @@ -52,7 +61,7 @@ WriteFileError::WriteFileError (boost::filesystem::path f, int e) } MissingSettingError::MissingSettingError (string s) - : SettingError (s, String::compose (_("missing required setting %1"), s)) + : SettingError (s, String::compose (_("Missing required setting %1"), s)) { } @@ -81,8 +90,51 @@ InvalidSignerError::InvalidSignerError (string reason) } -ProgrammingError::ProgrammingError (string file, int line) - : runtime_error (String::compose (_("Programming error at %1:%2"), file, line)) +ProgrammingError::ProgrammingError (string file, int line, string message) + : runtime_error (String::compose (_("Programming error at %1:%2 %3"), file, line, message)) +{ + +} + +KDMAsContentError::KDMAsContentError () + : runtime_error (_("This file is a KDM. KDMs should be added to DCP content by right-clicking the content and choosing \"Add KDM\".")) { } + +KDMError::KDMError (string s, string d) + : runtime_error (String::compose ("%1 (%2)", s, d)) + , _summary (s) + , _detail (d) +{ + +} + +GLError::GLError (char const * last, int e) + : runtime_error (String::compose("%1 failed %2", last, e)) +{ + +} + +CopyError::CopyError (string m, optional n) + : runtime_error (String::compose("%1%2", m, n ? String::compose(" (%1)", *n) : "")) + , _message (m) + , _number (n) +{ + +} + +CommunicationFailedError::CommunicationFailedError () + : CopyError (_("Lost communication between main and writer processes")) +{ + +} + +VerifyError::VerifyError (string m, int n) + : runtime_error (String::compose("%1 (%2)", m, n)) + , _message (m) + , _number (n) +{ + +} +