当前位置:  开发笔记 > 编程语言 > 正文

一种方法调用,多种可能的错误条件 - 如何在面向对象编程中进行管理?

如何解决《一种方法调用,多种可能的错误条件-如何在面向对象编程中进行管理?》经验,为你挑选了1个好方法。

我是Java/OOP的新手,我有兴趣了解这个问题的标准方法.

假设我的Java程序包含以下主要方法:

public static void main(String[] args) {
    String name = args[1];
    Person person = PersonHelper.getPerson(name);
}

想象一下,调用getPerson方法(在PersonH​​elper.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对象.



1> Mohammed Aou..:

继续这样:

public static void main(String[] args) {
    String name = args[1];

    try {
        Person person = PersonHelper.getPerson(name);
    }
    catch(MalformedURLException e) {
        // Handle exception
    } 
    catch(IOException e) {
        // Handle exception
    } 
    catch(JSONParseException e) {
        // Handle exception
    } 
}

并更改getPerson方法的签名,以便抛出3个异常,让main进行处理.

public static getPerson(String name) 
     throws MalformedURLException, IOException, JSONParseException { ... }

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有