From 2a0fd3d6e401fd4aa0281293bf253405600640f5 Mon Sep 17 00:00:00 2001 From: tastytea Date: Sat, 28 Dec 2019 09:52:39 +0100 Subject: [PATCH] Catch JSON errors. --- man/mastorss.1.adoc | 7 ++++--- src/main.cpp | 6 ++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/man/mastorss.1.adoc b/man/mastorss.1.adoc index db32774..40158b3 100644 --- a/man/mastorss.1.adoc +++ b/man/mastorss.1.adoc @@ -2,7 +2,7 @@ :doctype: manpage :Author: tastytea :Email: tastytea@tastytea.de -:Date: 2019-12-25 +:Date: 2019-12-28 :Revision: 0.0.0 :man source: mastorss :man manual: General Commands Manual @@ -157,15 +157,16 @@ proxy support yet, sorry. == ERROR CODES [cols=">,<"] -|=========================================================== +|=============================================================================== | Code | Explanation | 1 | No profile specified. | 2 | Network error. | 3 | File error. | 4 | Mastodon API error. +| 5 | JSON error, most likely the file is wrongly formatted. | 9 | Unknown error. -|=========================================================== +|=============================================================================== == DEBUGGING diff --git a/src/main.cpp b/src/main.cpp index bc783b2..fc9d433 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -34,6 +34,7 @@ constexpr int noprofile = 1; constexpr int network = 2; constexpr int file = 3; constexpr int mastodon = 4; +constexpr int json = 5; constexpr int unknown = 9; } // namespace error @@ -134,6 +135,11 @@ int main(int argc, char *argv[]) cerr << e.what() << '\n'; return error::network; } + catch (const Json::RuntimeError &e) + { + cerr << "JSON error:\n" << e.what() << '\n'; + return error::json; + } catch (const runtime_error &e) { cerr << e.what() << '\n';