From 5f33782a3f042c2e952a449d6ad0cf6529964751 Mon Sep 17 00:00:00 2001 From: Timo Ley Date: Sat, 25 Jan 2020 15:38:50 +0100 Subject: [PATCH] Improved Exception system --- .../untis/exception/APIRequestException.java | 33 ++++++++++++++++++- .../java/ley/untis/exception/EnumError.java | 13 ++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 src/main/java/ley/untis/exception/EnumError.java diff --git a/src/main/java/ley/untis/exception/APIRequestException.java b/src/main/java/ley/untis/exception/APIRequestException.java index 8f98b92..6bb32d9 100644 --- a/src/main/java/ley/untis/exception/APIRequestException.java +++ b/src/main/java/ley/untis/exception/APIRequestException.java @@ -1,16 +1,47 @@ package ley.untis.exception; +import org.omg.CORBA.UNKNOWN; + public class APIRequestException extends Exception { Throwable source; + String message; + EnumError errorType; public APIRequestException(Throwable error) { source = error; + message = source.getMessage(); + if (message == null) { + errorType = EnumError.UNKNOWN; + } else if (message.contains("no such element")) { + errorType = EnumError.ELEMENTNOTFOUND; + } else if (message.contains("no right")) { + errorType = EnumError.NOPERMISSION; + } else { + switch (message) { + case "bad credentials": + errorType = EnumError.BADCREDENTIALS; + break; + case "0": + errorType = EnumError.SCHOOLNOTFOUND; + break; + case "too many results": + errorType = EnumError.TOOMANYSCHOOLS; + break; + default: + errorType = EnumError.UNKNOWN; + break; + } + } + } + + public EnumError getError() { + return errorType; } @Override public String getMessage() { - return source.getMessage(); + return message; } @Override diff --git a/src/main/java/ley/untis/exception/EnumError.java b/src/main/java/ley/untis/exception/EnumError.java new file mode 100644 index 0000000..7b7cef9 --- /dev/null +++ b/src/main/java/ley/untis/exception/EnumError.java @@ -0,0 +1,13 @@ +package ley.untis.exception; + +public enum EnumError { + + UNKNOWN, + BADCREDENTIALS, + SCHOOLNOTFOUND, + TOOMANYSCHOOLS, + NOCONNECTION, + NOPERMISSION, + ELEMENTNOTFOUND + +}