【发布时间】:2015-12-15 15:44:14
【问题描述】:
我是 Java / OOP 的新手,我有兴趣了解解决此问题的标准方法。
假设我的 Java 程序包含以下主要方法:
public static void main(String[] args) {
String name = args[1];
Person person = PersonHelper.getPerson(name);
}
想象一下调用 getPerson 方法(在 PersonHelper.java 中定义的其他方法和类的帮助下)执行以下操作:
- 从模板构建 url 以从远程服务器获取有关“名称”的数据,例如https://allofthepeople.com/name 变为 https://allofthepeople.com/Alice
- 使用此 url 将有关 Alice 的 JSON 格式数据从服务器读取到缓冲区中
- 使用 JSON 解析器将此数据反序列化为 Person 对象
- 返回对象
现在有(至少)三个异常可以在这个例程中抛出:
- MalformedURLException(例如,如果我传入二进制数据而不是名称)
- IOException(例如,如果 /Alice 不存在)
- JSONParseException(例如,如果服务器的响应不是 JSON 格式)
假设调用getPerson(本例中为main)的方法需要能够区分这三个异常,应该怎么做呢?我看不出异常本身是如何返回的,因为赋值 Person person = PersonHelper.getPerson(name) 需要一个 Person 对象。
【问题讨论】:
-
你不返回异常,你可能想要处理异常并让
getPerson抛出这些异常。
标签: java oop error-handling