+
+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<int> 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)
+{
+
+}
+