Improved Exception system

This commit is contained in:
Timo Ley 2020-01-25 15:38:50 +01:00
parent bdeb99d050
commit 5f33782a3f
2 changed files with 45 additions and 1 deletions

View file

@ -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

View file

@ -0,0 +1,13 @@
package ley.untis.exception;
public enum EnumError {
UNKNOWN,
BADCREDENTIALS,
SCHOOLNOTFOUND,
TOOMANYSCHOOLS,
NOCONNECTION,
NOPERMISSION,
ELEMENTNOTFOUND
}