Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/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
Kotlin 如果为null,它会抛出异常吗?_Kotlin - Fatal编程技术网

Kotlin 如果为null,它会抛出异常吗?

Kotlin 如果为null,它会抛出异常吗?,kotlin,Kotlin,我是Kotlin world的新手,不理解以下代码片段: @GET @Path("/env/{id}") fun read(@PathParam("id") id: EnvStageId): Uni<Environment> = createUni(repo.read(id)).map { it ?: throw WebApplicationException(Response.status(Respon

我是Kotlin world的新手,不理解以下代码片段:

  @GET
  @Path("/env/{id}")
  fun read(@PathParam("id") id: EnvStageId): Uni<Environment> =
      createUni(repo.read(id)).map {
        it ?: throw WebApplicationException(Response.status(Response.Status.BAD_REQUEST)
            .type(TEXT_PLAIN)
            .entity("Environment $id does not exist")
            .build())
      }
@GET
@路径(“/env/{id}”)
趣味阅读(@PathParam(“id”)id:EnvStageId):Uni=
createUni(repo.read(id)).map{
it?:抛出WebApplicationException(Response.status(Response.status.BAD_请求)
.type(纯文本)
.实体(“环境$id不存在”)
.build())
}

问题是,如果
it
为null,那么它将抛出一个异常,对吗?

elvis操作符
?:
非null或延续

对。如果为null,则会引发异常

问题是,有时崩溃会更好:如果该操作应该总是从本地数据库返回某些内容,那么如果失败,您会收到一个警报,提示正在发生一些非常糟糕的事情,crashalytica for prod现在是标准的

可能设计是在低级别实现上抛出异常。我不这么认为,因为这似乎是混合了网络和存储库,所以我会怀疑它。但另一方面似乎是这样,因为有人为此编写了一个特殊的异常,如果是这样,那么下一个体系结构层应该捕获这些异常并优雅地处理它们