Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 发生异常时继续处理_Java - Fatal编程技术网

Java 发生异常时继续处理

Java 发生异常时继续处理,java,Java,下面的代码基本上读取一组JSON字符串,并将其转换为java对象。我的问题是,如果在任何时候,任何一个JSON字符串的转换都失败了,它就不会处理其他字符串。我需要的是- 查找发生错误的字符串 在异常块中,执行某些操作以继续处理 下面是我将JSON转换为Java的代码 public static <T> T convertToObject(String jsonString,Class<T> classType){ T obj = null; try {

下面的代码基本上读取一组JSON字符串,并将其转换为java对象。我的问题是,如果在任何时候,任何一个JSON字符串的转换都失败了,它就不会处理其他字符串。我需要的是-

  • 查找发生错误的字符串
  • 在异常块中,执行某些操作以继续处理
  • 下面是我将JSON转换为Java的代码

    public static <T> T convertToObject(String jsonString,Class<T> classType){
        T obj = null;
        try {
            obj = objectMapper.readValue(jsonString, classType);
        } catch (Exception e) {
            throw new Exception("Unable to convert to DTO :" + e.getMessage(), e);
        } 
        return obj;
    }
    
    publicstatict convertToObject(字符串jsonString,类classType){
    T obj=null;
    试一试{
    obj=objectMapper.readValue(jsonString,类类型);
    }捕获(例外e){
    抛出新异常(“无法转换为DTO:+e.getMessage(),e”);
    } 
    返回obj;
    }
    
    我认为您需要一个自定义反序列化程序。标准ObjectMapper将执行全部操作或不执行任何操作。在此处阅读有关为Jackson ObjectMapper创建自定义反序列化程序的更多信息:


    您正在捕获异常,然后为消息“无法转换…”抛出一个新异常。。。那么您在哪里捕获第二个异常呢?与上面的问题相同:显示调用您的函数的代码。无论抛出哪种类型的异常,您都必须修改它。+1,但我怀疑这需要相当多的工作才能实现。