diff vamp-client/qt/ProcessQtTransport.h @ 170:590b1a1fd955

More work on error and exception handling
author Chris Cannam <cannam@all-day-breakfast.com>
date Tue, 31 Jan 2017 14:53:24 +0000
parents 6ccb195d6de6
children ce42f0bebae3
line wrap: on
line diff
--- a/vamp-client/qt/ProcessQtTransport.h	Tue Jan 31 11:26:07 2017 +0000
+++ b/vamp-client/qt/ProcessQtTransport.h	Tue Jan 31 14:53:24 2017 +0000
@@ -37,6 +37,7 @@
 #define PIPER_PROCESS_QT_TRANSPORT_H
 
 #include "../SynchronousTransport.h"
+#include "../Exceptions.h"
 
 #include <QProcess>
 #include <QString>
@@ -181,12 +182,14 @@
                 if (responseStarted) {
                     if (duringResponseTimeout > 0 && ms > duringResponseTimeout) {
                         log("Server timed out during response");
-                        throw std::runtime_error("Request timed out");
+                        m_crashed = true;
+                        throw RequestTimedOut();
                     }
                 } else {
                     if (beforeResponseTimeout > 0 && ms > beforeResponseTimeout) {
                         log("Server timed out before response");
-                        throw std::runtime_error("Request timed out");
+                        m_crashed = true;
+                        throw RequestTimedOut();
                     }
                 }
                 
@@ -230,9 +233,7 @@
                 switch (m_completenessChecker->check(buffer)) {
                 case MessageCompletenessChecker::Complete: complete = true; break;
                 case MessageCompletenessChecker::Incomplete: break;
-                case MessageCompletenessChecker::Invalid:
-                    throw std::runtime_error
-                        ("Invalid message received: corrupt stream from server?");
+                case MessageCompletenessChecker::Invalid: throw ProtocolError();
                 }
                 (void)t.restart(); // reset timeout when we read anything
             }