class ObjectWriterException
        extends ObjectWriterAdapter<Exception> {
    public ObjectWriterException(Class objectType, long features, List<FieldWriter> fieldWriters) {
        super(objectType, null, null, features, fieldWriters);
    }

    @Override
    public void writeJSONB(JSONWriter jsonWriter, Object object, Object fieldName, Type fieldType, long features) {
        writeClassInfo(jsonWriter);

        int size = fieldWriters.size();
        jsonWriter.startObject();
        for (int i = 0; i < size; ++i) {
            FieldWriter fw = fieldWriters.get(i);
            fw.write(jsonWriter, object);
        }
        jsonWriter.endObject();
    }

    @Override
    public void write(JSONWriter jsonWriter, Object object, Object fieldName, Type fieldType, long features) {<FILL_FUNCTION_BODY>}
}

        if (jsonWriter.jsonb) {
            writeJSONB(jsonWriter, object, fieldName, fieldType, features);
            return;
        }

        if (hasFilter(jsonWriter)) {
            writeWithFilter(jsonWriter, object);
            return;
        }

        jsonWriter.startObject();

        if ((jsonWriter.getFeatures(features)
                & (JSONWriter.Feature.WriteClassName.mask | JSONWriter.Feature.WriteThrowableClassName.mask)) != 0
        ) {
            writeTypeInfo(jsonWriter);
        }

        for (FieldWriter fieldWriter : fieldWriters) {
            fieldWriter.write(jsonWriter, object);
        }

        jsonWriter.endObject();
    
<methods>public void <init>(Class<java.lang.Exception>, List<FieldWriter#RAW>) ,public void <init>(Class<java.lang.Exception>, java.lang.String, java.lang.String, long, List<FieldWriter#RAW>) ,public long getFeatures() ,public FieldWriter#RAW getFieldWriter(long) ,public List<FieldWriter#RAW> getFieldWriters() ,public final boolean hasFilter(com.alibaba.fastjson2.JSONWriter) ,public void setNameFilter(com.alibaba.fastjson2.filter.NameFilter) ,public void setPropertyFilter(com.alibaba.fastjson2.filter.PropertyFilter) ,public void setPropertyPreFilter(com.alibaba.fastjson2.filter.PropertyPreFilter) ,public void setValueFilter(com.alibaba.fastjson2.filter.ValueFilter) ,public com.alibaba.fastjson2.JSONObject toJSONObject(java.lang.Exception) ,public com.alibaba.fastjson2.JSONObject toJSONObject(java.lang.Exception, long) ,public Map<java.lang.String,java.lang.Object> toMap(java.lang.Object) ,public java.lang.String toString() ,public void write(com.alibaba.fastjson2.JSONWriter, java.lang.Object, java.lang.Object, java.lang.reflect.Type, long) ,public void writeArrayMappingJSONB(com.alibaba.fastjson2.JSONWriter, java.lang.Object, java.lang.Object, java.lang.reflect.Type, long) ,public void writeJSONB(com.alibaba.fastjson2.JSONWriter, java.lang.Object, java.lang.Object, java.lang.reflect.Type, long) ,public boolean writeTypeInfo(com.alibaba.fastjson2.JSONWriter) ,public void writeWithFilter(com.alibaba.fastjson2.JSONWriter, java.lang.Object, java.lang.Object, java.lang.reflect.Type, long) <variables>static final java.lang.String TYPE,final non-sealed boolean containsNoneFieldGetter,final non-sealed long features,protected final non-sealed FieldWriter#RAW[] fieldWriterArray,final non-sealed List<FieldWriter#RAW> fieldWriters,final non-sealed boolean googleCollection,boolean hasFilter,final non-sealed boolean hasValueField,final non-sealed long[] hashCodes,byte[] jsonbClassInfo,final non-sealed short[] mapping,com.alibaba.fastjson2.filter.NameFilter nameFilter,char[] nameWithColonUTF16,byte[] nameWithColonUTF8,final non-sealed Class#RAW objectClass,com.alibaba.fastjson2.filter.PropertyFilter propertyFilter,com.alibaba.fastjson2.filter.PropertyPreFilter propertyPreFilter,final non-sealed boolean serializable,final non-sealed java.lang.String typeKey,byte[] typeKeyJSONB,protected final non-sealed java.lang.String typeName,protected final non-sealed long typeNameHash,protected final non-sealed byte[] typeNameJSONB,protected long typeNameSymbolCache,com.alibaba.fastjson2.filter.ValueFilter valueFilter