Nic*_*cci 1 java interface exception
我正在编写一个运行时间非常慢的面向内部的工具。由于此运行时,我尝试验证输入是否有错误,并在实际运行该工具之前将包含每个丢失或失败元素的详细列表的 JSON 对象发送给客户端。
我想知道是否有一种方法可以修改 java Exception 的错误消息返回类型,以便我可以在错误中抛出此 HashMap。
包含错误的哈希图看起来像这样:
Error: {
Message: "Your X is configured improperly, please fill out the required fields before running this tool",
formXErrors: {
Message: "The following fields are missing from formX",
Error: {
field1Name: "field 1",
field2Name: "field 2",
...
},
formYErrors: {
Message: "The following fields are missing from formY",
Error: {
field1Name: "field 1",
field2Name: "field 2",
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,如果发现错误,我想像这样抛出它(将 HashMap 传递到消息字段而不是字符串):
if (errorHashMap != null) {
throw new ToolXException(errorHashMap);
}
Run Code Online (Sandbox Code Playgroud)
Java 对我来说有点新,所以我想知道是否有人可以指出我找到一种方法来实现这种行为。有可能吗?或者是返回此 HashMap 而不是抛出并将其发送到客户端的唯一方法?
提前致谢!
您无法编辑消息的类型,但您当然可以将您喜欢的任何类型的字段添加到自定义Exception类型。
class ToolXException extends Exception {
private final Map<Key, Value> map;
public Map<Key, Value> getMap() { return map; }
public ToolXException(Map<Key, Value> map) {
this.map = map;
}
}
Run Code Online (Sandbox Code Playgroud)
...然后你可以把它拿出来并在你抓住它时以你喜欢的方式显示它:
try {
...
} catch (ToolXException e) {
doSomethingWith(e.getMap());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |