当前位置: 首页 > 知识库问答 >
问题:

使Java API流引发异常

郝昊天
2023-03-14

我有一个包含属性的对象,该属性是包含两个字符串属性的对象列表。我的目标是将此映射的键与另一个包含字符串属性的对象进行比较。

为了更清楚我的请求包含地图:

"documentType": "Document"
"fields": [
  {
    "name": "something",
    "value": "123456789"
  },
  {
    "name": "somethingElse",
    "value": "Someone"
  },
  {
    "name": "notADocumentColumn",
    "value": "shouldThrowException"
  },
  {
    "name": "notexistingcolumn",
    "value": "not a column"
  }
]

我的sharePointDriveResponse包含以下列:

"columns": [
     {
         "columnGroup": "Document",
         "description": "",
         "displayName": "something",
         "enforceUniqueValues": false,
         "hidden": false,
         "id": "8553196d-ec8d-4564-9861-xxxxxxxxxxxx",
         "indexed": false,
         "name": "FileLeafRef",
         "readOnly": false,
         "required": true
    },
    {
         "columnGroup": "Billing or Whatever",
         "description": "",
         "displayName": "notADocumentColumn",
         "enforceUniqueValues": false,
         "hidden": false,
         "id": "3a6b296c-3f50-445c-a13f-xxxxxxxxxxxx",
         "indexed": false,
         "name": "ComplianceAssetId",
         "readOnly": true,
         "required": false,
         "text": {
             "allowMultipleLines": false,
             "appendChangesToExistingText": false,
             "linesForEditing": 0,
             "maxLength": 255
         }
     },

在这个阶段,我实现了一些工作正常的东西:

List<String> check = sharePointDriveResponse.getColumns()
        .stream()
        .map(SharePointColumnsResponse::getDisplayName)
        .collect(Collectors.toList())
        .stream()
        .filter(request.getFields()::containsKey)
        .collect(Collectors.toList());

if(check.size() == request.getFields().size()) {
    System.out.println("It's OK !");
} else {
    throw new RequestException("One column provided doesn't exist");
}

我的问题如下:

  1. 在这里传输数据时是否可能引发异常
sharePointDriveResponse.getColumns()
            .stream()
            .map(SharePointColumnsResponse::getDisplayName)
            .collect(Collectors.toList())
            .stream()
            .filter(request.getFields()::containsKey)
            .collect(Collectors.toList());
            // some operator here to throw exception 

在示例中:我发送一个创建文档的请求,并传递一个不允许文档使用但允许其他内容类型使用的字段。

"columnGroup": "Billing or Whatever",
"description": "",
"displayName": "notADocumentColumn",

我也想为这个案子破例。我也可以像以前那样重建一个类似的东西,但是我会因为这个简单的任务而失去效率。

List<String> checkColumnsContentType = sharePointDriveResponse.getColumns()
        .stream()
        .map(SharePointColumnsResponse::getColumnGroup)
        .collect(Collectors.toList())
        .stream()
        .filter(request.getFields()::containsKey)
        .collect(Collectors.toList());

共有1个答案

寇升
2023-03-14

我找到了问题第一点的答案。因为写这个问题花了一些时间,所以即使解决了这个问题,我还是让它继续。这是我的实现。

    sharePointDriveResponse.getColumns()
            .stream()
            .map(SharePointColumnsResponse::getDisplayName)
            .collect(toList())
            .stream()
            .filter(request.getFields()::containsKey)
            .collect(collectingAndThen(toList(), l -> {
                if (l.size() != request.getFields().size())
                    throw new RuntimeException("One column provided doesn't exist");
                return l;
            }));
 类似资料:
  • 你可以使用raise语句 引发 异常。你还得指明错误/异常的名称和伴随异常 触发的 异常对象。你可以引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。 如何引发异常 例13.2 如何引发异常 #!/usr/bin/python # Filename: raising.py classShortInputException(Exception):     '''A u

  • 我正在使用Spring In Action 3 Action学习Spring MVC,我已经实现了显示用户注册表的基本程序,一旦我们提交表单,它将使用进行验证。 这是我的Spring控制器: 这是我的Spitter类文件: 这是我的编辑。显示给用户注册的jsp文件: 要加载表单,我将访问URL为:,一旦表单被加载,我只需提交表单而无需输入任何详细信息,以便我可以检查我的表单是否得到验证。但是我得到

  • 问题内容: 如何从Java 8流/ lambda中抛出CHECKED异常? 换句话说,我想使代码像这样编译: 由于上面的方法,因此该代码无法编译。 请注意,我不想将已检查的异常包装在运行时异常中,而是将已包装的未检查的异常抛出。我想抛出被检查的异常本身,而又不添加丑陋的流。 问题答案: 该帮助程序类使你可以在Java流中使用任何已检查的异常,如下所示: 注意抛出异常,已被选中。流本身也会抛出,而不

  • 测试检查的代码中抛出的两个异常示例: 使用上述代码,当运行测试时,任何都会通过,但任何需要类提供响应的测试都会产生以下错误: EntityNotFoundException-失败 测试:

  • 如果S是T的一个子类型,那么T类型的对象可以被S类型的对象替换。 子类有两种不同的行为(选中与未选中),在某些情况下,除非更改当前代码,否则无法用子类对象有效地替换基类用法,例如,如果编写如下代码: 这是违反吗?,为什么/为什么不?。 资料来源:http://www.oracle.com/technetwork/articles/entarch/effective-exceptions-09234