blob: 6bd8d8ce8edd5c75eaf0f9f30d7da98e6ef20373 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
package org.json.simple.parser;
/**
* ParseException explains why and where the error occurs in source JSON text.
*
* @author FangYidong<fangyidong@yahoo.com.cn>
*
*/
public class ParseException extends Exception {
private static final long serialVersionUID = -7880698968187728547L;
public static final int ERROR_UNEXPECTED_CHAR = 0;
public static final int ERROR_UNEXPECTED_TOKEN = 1;
public static final int ERROR_UNEXPECTED_EXCEPTION = 2;
private int errorType;
private Object unexpectedObject;
private int position;
public ParseException(final int errorType) {
this(-1, errorType, null);
}
public ParseException(final int errorType, final Object unexpectedObject) {
this(-1, errorType, unexpectedObject);
}
public ParseException(final int position, final int errorType, final Object unexpectedObject) {
this.position = position;
this.errorType = errorType;
this.unexpectedObject = unexpectedObject;
}
public int getErrorType() {
return this.errorType;
}
public void setErrorType(final int errorType) {
this.errorType = errorType;
}
/**
* @see org.json.simple.parser.JSONParser#getPosition()
*
* @return The character position (starting with 0) of the input where the
* error occurs.
*/
public int getPosition() {
return this.position;
}
public void setPosition(final int position) {
this.position = position;
}
/**
* @see org.json.simple.parser.Yytoken
*
* @return One of the following base on the value of errorType:
* ERROR_UNEXPECTED_CHAR java.lang.Character ERROR_UNEXPECTED_TOKEN
* org.json.simple.parser.Yytoken ERROR_UNEXPECTED_EXCEPTION
* java.lang.Exception
*/
public Object getUnexpectedObject() {
return this.unexpectedObject;
}
public void setUnexpectedObject(final Object unexpectedObject) {
this.unexpectedObject = unexpectedObject;
}
@Override
public String getMessage() {
final StringBuffer sb = new StringBuffer();
switch (this.errorType) {
case ERROR_UNEXPECTED_CHAR:
sb.append("Unexpected character (").append(this.unexpectedObject).append(
") at position ").append(this.position).append(".");
break;
case ERROR_UNEXPECTED_TOKEN:
sb.append("Unexpected token ").append(this.unexpectedObject).append(" at position ")
.append(this.position).append(".");
break;
case ERROR_UNEXPECTED_EXCEPTION:
sb.append("Unexpected exception at position ").append(this.position).append(": ")
.append(this.unexpectedObject);
break;
default:
sb.append("Unkown error at position ").append(this.position).append(".");
break;
}
return sb.toString();
}
}
|