小编Kaa*_*ert的帖子

Scala try-catch没有捕获异常

据我所知,以下代码片段应该可以正常执行.Stream("A", "").toIterable.map(_.head)抛出异常,应该被try块捕获.

import org.scalatest.FunSuite

class TryCatchTest extends FunSuite {
  test("Try failure") {
    List(1).flatMap {
      _ =>
        try {
          Stream("A", "").toIterable.map(_.head)
        } catch {
          case e: Throwable => Nil
        }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,崩溃时出现以下错误:

next on empty iterator
java.util.NoSuchElementException: next on empty iterator
    at scala.collection.Iterator$$anon$2.next(Iterator.scala:39)
    at scala.collection.Iterator$$anon$2.next(Iterator.scala:37)
    at scala.collection.IndexedSeqLike$Elements.next(IndexedSeqLike.scala:63)
    at scala.collection.IterableLike$class.head(IterableLike.scala:107)
    at scala.collection.immutable.StringOps.scala$collection$IndexedSeqOptimized$$super$head(StringOps.scala:30)
    at scala.collection.IndexedSeqOptimized$class.head(IndexedSeqOptimized.scala:126)
    at scala.collection.immutable.StringOps.head(StringOps.scala:30)
    at TryCatchTest$$anonfun$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$1.apply(TryCatchTest.scala:8)
    at TryCatchTest$$anonfun$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$1.apply(TryCatchTest.scala:8)
    at scala.collection.immutable.Stream$$anonfun$map$1.apply(Stream.scala:418)
    at scala.collection.immutable.Stream$$anonfun$map$1.apply(Stream.scala:418)
    at scala.collection.immutable.Stream$Cons.tail(Stream.scala:1222)
    at scala.collection.immutable.Stream$Cons.tail(Stream.scala:1212)
    at scala.collection.immutable.Stream.foreach(Stream.scala:595)
    at scala.collection.immutable.List.flatMap(List.scala:327)
    at TryCatchTest$$anonfun$1.apply$mcV$sp(TryCatchTest.scala:5)
    at TryCatchTest$$anonfun$1.apply(TryCatchTest.scala:5) …
Run Code Online (Sandbox Code Playgroud)

scala try-catch

4
推荐指数
1
解决办法
1094
查看次数

PHP 检查数组中文件是否存在

我有一个查询,它根据 Order_ID 从数据库中获取一些文件名。许多文件可能与一个订单相关联。查询看起来像

$download2 = xtc_db_query("SELECT orders_products_filename FROM orders_products_download WHERE orders_id='".$last_order."'");
while ($activated2 = xtc_db_fetch_array($download2)) 
{

    $file = $activated2['orders_products_filename'];
    $pieces = explode(".zip", $file);
    print_r ($pieces);

    if(file_exists($pieces.'.zip'))
    { echo "1"; }
    if(!file_exists($pieces.'.zip'))
    { echo "2"; }

}
Run Code Online (Sandbox Code Playgroud)

我想要做的是如果文件存在或不存在则触发一个操作。As $piecesis an arrayfile_exists假设整个数组是一个文件,并且它不起作用(它总是回显 2)。如果有人给我提示如何解决这个问题,那就太好了。

php arrays file file-exists

1
推荐指数
1
解决办法
4509
查看次数

标签 统计

arrays ×1

file ×1

file-exists ×1

php ×1

scala ×1

try-catch ×1