Donald_Draper
2017-05-26 08:24
采纳率: 0%
浏览 3.3k

JSONObject的fromObject抛出异常,在那个地方捕捉

  public static JSONObject fromObject(Object object, JsonConfig jsonConfig)
    {
        if(object == null || JSONUtils.isNull(object))
            return new JSONObject(true);
        if(object instanceof Enum)
            throw new JSONException("'object' is an Enum. Use JSONArray instead");
        if((object instanceof Annotation) || object != null && object.getClass().isAnnotation())
            throw new JSONException("'object' is an Annotation.");
        if(object instanceof JSONObject)
            return _fromJSONObject((JSONObject)object, jsonConfig);
        if(object instanceof DynaBean)
            return _fromDynaBean((DynaBean)object, jsonConfig);
        if(object instanceof JSONTokener)
            return _fromJSONTokener((JSONTokener)object, jsonConfig);
        if(object instanceof JSONString)
            return _fromJSONString((JSONString)object, jsonConfig);
        if(object instanceof Map)
            return _fromMap((Map)object, jsonConfig);
        if(object instanceof String)
            return _fromString((String)object, jsonConfig);
        if(JSONUtils.isNumber(object) || JSONUtils.isBoolean(object) || JSONUtils.isString(object))
            return new JSONObject();
        if(JSONUtils.isArray(object))
            throw new JSONException("'object' is an array. Use JSONArray instead");
        else
            return _fromBean(object, jsonConfig);
    }

很好奇,问什么JSONObject的fromObject抛出异常,没有捕捉?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • FEN_TA 2017-05-26 08:48

    try{}catch(Exception e){} 把 if语句包裹起来

    评论
    解决 无用
    打赏 举报
  • Nihility/ 2017-05-27 10:28

    那我只好怒答了,以下:


    先看继承关系

         JSONException extends NestableRuntimeException extends RuntimeException extends Exceptionextends Throwable
    

    源代码就不必看了


    异常分类:运行时异常和非运行时异常

    运行时异常都是RuntimeException类及其子类异常,这些异常是不检查异常(JVM在运行期处理的异常),程序中可以选择捕获处理,也可以不处理。


    自然,检查异常就是除开RuntimeException类及其子类异常,这些异常是检查异常(JVM在编译期处理的异常),我他妈既然知道你有问题,我当然要求你处理啊,三观很正是不是!


    javadoc

    
        // Exception
        /**
         * The class {@code Exception} and its subclasses are a form of
         * {@code Throwable} that indicates conditions that a reasonable
         * application might want to catch.
         *
         * <p>The class {@code Exception} and any subclasses that are not also
         * subclasses of {@link RuntimeException} are <em>checked
         * exceptions</em>.  Checked exceptions need to be declared in a
         * method or constructor's {@code throws} clause if they can be thrown
         * by the execution of the method or constructor and propagate outside
         * the method or constructor boundary.
         */
    
        // RuntimeException
        /**
         * {@code RuntimeException} is the superclass of those
         * exceptions that can be thrown during the normal operation of the
         * Java Virtual Machine.
         *
         * <p>{@code RuntimeException} and its subclasses are <em>unchecked
         * exceptions</em>.  Unchecked exceptions do <em>not</em> need to be
         * declared in a method or constructor's {@code throws} clause if they
         * can be thrown by the execution of the method or constructor and
         * propagate outside the method or constructor boundary.
         */
    
    

    最后TMD吐槽一下这个编辑器,是贼他妈的难用 #Markdown#,参考个鸡儿,都不全,Ctrl+K你这是Ctrl+, 简直就是扯几把犊子,瞎TM排版算了

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题