加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何避免java中的许多try catch块

发布时间:2020-05-24 02:23:26 所属栏目:Java 来源:互联网
导读:我是 java的新手,并尝试使用catch catch来处理异常. 这大致是我最终的结果,而且必须有一个更好的方法: try { JSONObject jsonObject = new JSONObject(jsonString); int aCount = jsonObject.getInt(acount); String devTok = j

我是 java的新手,并尝试使用catch catch来处理异常.

这大致是我最终的结果,而且必须有一个更好的方法:

try {
        JSONObject jsonObject = new JSONObject(jsonString);
        int aCount = jsonObject.getInt("acount");
        String devTok = jsonObject.getString("dt");
        String qURL = jsonObject.getString("qu");
        try {
            DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
            Key qKey = KeyFactory.createKey("qu",qURL);
            int dsACount = (Integer) datastore.get(qKey).getProperty(kLastKnownANumber);
            //..etc.. more try catch blocks needed
        } catch (EntityNotFoundException e) {
            e.printStackTrace();
        }
    } catch (com.google.appengine.repackaged.org.json.JSONException e) {
        e.printStackTrace();
    }

以相同的方式嵌入了更多try catch块,因此最后只有一块catch块.如何处理异常,Eclipse一直要求我使用try catch块或“添加throws声明”.

有时我想捕获某些异常,例如,如果它找不到实体,我想打印“未找到实体”之类的东西,如果JSON字符串无法解析为对象,我想打印一些东西比如“无法解析JSON”.

(我习惯于使用objective-c作为失败的委托方法,或者方法返回null,并且你已经传递了一个指针指向一个NSError对象的指针,该对象将被“填充”,是否有某处了解try-catch?)

解决方法

如果你正在做的就是捕获它们并打印堆栈跟踪而不管异常类型如何,你可以将代码包装在一个大的try / catch块中.要保存许多“捕获”,您可以捕获java.lang.Throwable,它是所有异常实现的接口.如果没有,您可以捕获您正在调用的代码抛出的每种类型的已检查异常,并专门处理它们.

Eclipse一直要求您这样做,因为如果未捕获已检查的异常或声明被调用者抛出,则Java代码将无法编译.

将此评论添加到答案中(谢谢,Paul Tomblin):

在生产质量的应用程序中,您将记录跟踪,添加一些逻辑,您正在以正确的方式处理异常,采用备用流程,和/或将其重新包装在另一个异常中并抛出它等等.取决于你想要解决的特定问题.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读