Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordesperateCoder <echotodevnull@gmail.com>2020-06-15 19:47:47 +0300
committerdesperateCoder <echotodevnull@gmail.com>2020-06-15 19:47:47 +0300
commit6e5e60ac18fd84dca875edf588e383fb8474c828 (patch)
treee219f7d8180be9cb82a118ce92f17b94be6acf0a /app/src/main/java/it/niedermann/nextcloud/deck/exceptions/TraceableException.java
parent17be1394bc928ec56a352eec188d8e68d6a95519 (diff)
#528 better logging of parsing errors
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/exceptions/TraceableException.java')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/exceptions/TraceableException.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/exceptions/TraceableException.java b/app/src/main/java/it/niedermann/nextcloud/deck/exceptions/TraceableException.java
new file mode 100644
index 000000000..a53ce8c1f
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/exceptions/TraceableException.java
@@ -0,0 +1,34 @@
+package it.niedermann.nextcloud.deck.exceptions;
+
+import it.niedermann.nextcloud.deck.DeckLog;
+
+public class TraceableException extends RuntimeException {
+
+ private TraceableException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public static void makeTraceableIfFails(Runnable runnable, Object... args) {
+ try {
+ runnable.run();
+ } catch (Throwable t) {
+ String message = "Sorry, a wild error appeared!\n" +
+ "### If you want to tell us about the following issue, " +
+ "please make sure to censor sensitive data beforehand! ###\n" +
+ "Failed to run traceable code";
+ if (args != null && args.length > 0) {
+ message += " with arguments:\n";
+ for (Object arg : args) {
+ message += (arg == null ? "null" : arg.toString())+"\n";
+ }
+ } else {
+ message += ":\n";
+ }
+
+ message += "Cause: " + t.getLocalizedMessage();
+ TraceableException ex = new TraceableException(message, t);
+ DeckLog.logError(ex);
+ throw ex;
+ }
+ }
+}