小编Jos*_*osh的帖子

将多个异常类型匹配到同一个案例

当模式将异常与case语句匹配时,是否有更简单的方法将同一异常与一组异常类型匹配?而不是这个:

} catch {
  case e if e.isInstanceOf[MappingException] || e.isInstanceOf[ParseException] => 
Run Code Online (Sandbox Code Playgroud)

像这样的东西会很好:

case e: MappingException | ParseException | SomeOtherException =>
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?

scala pattern-matching

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

使用SBT和Scala IDE添加和删除依赖项

我一直在尝试使用SBT和Scala IDE(Eclipse),我想知道 - 在build.sbt文件中添加和删除依赖项的标准工作流程是什么,其中项目的引用库将在Eclipse中更新?

在添加/删除依赖项时,是否有任何使用sbt和eclipse所需的插件?

eclipse scala sbt scala-ide

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

如何处理let绑定或正文中发生的异常

如何处理let使用相同finally块的语句的绑定或主体中可能发生的异常?例如:

(let [connections (create-connections)] 
  (dostuff)
  (close connections))
Run Code Online (Sandbox Code Playgroud)

如果(create-connections)(dostuff)失败,我想(close connections).一些选择:

选项1:

(try     
  (let [connections (create-connections)] 
    (dostuff))
  (finally (close connections))
Run Code Online (Sandbox Code Playgroud)

这显然不起作用,因为connections不在finally块的范围内.

选项2:

(let [connections (create-connections)]
  (try
    (dostuff)
    (finally (close connections)))
Run Code Online (Sandbox Code Playgroud)

此选项仅捕获(destuff)调用中发生的异常,而不是捕获的异常(create-connections).

选项3:

(let [connections (try 
                    (create-connections)
                    (finally (close connections)))]
  (try
    (dostuff)
    (finally (close connections)))
Run Code Online (Sandbox Code Playgroud)

这也不起作用,因为connections它不在let绑定中的finally语句的范围内.

那么解决这个问题的最佳方法是什么?

exception-handling clojure autocloseable

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

将Scala对象转换为XML

有许多Scala库可以将任意对象转换为JSON,还有一些将JSON转换为XML,但我似乎无法找到将任意对象转换为XML的好方法.什么是好方法?

xml scala

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

检查多个记录是否与一组值匹配

有没有办法编写单个查询来检查一组行是否与一组值匹配?我需要匹配每组值一行,并且我想知道所有行是否匹配.我可以通过多个查询执行此操作,例如:

select * from tableName where (value1, value2) = ('someValue1', 'someValue2')
select * from tableName where (value1, value2) = ('someOtherValue1', 'someOtherValue2')
Run Code Online (Sandbox Code Playgroud)

......等等,最多可以查询任意数量的查询.如果所有值都匹配,那么如何将这种事情重写为单个查询,其中查询仅返回?

mysql sql

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

找到已经实现的LazySeq的元素

我有一个LazySeq连接,在实现时创建.如果在尝试创建连接时发生异常,我想迭代已经在LazySeq中实现的所有连接并关闭它们.就像是:

(try  
  (dorun connections)
  (catch ConnectException (close-connections connections)))
Run Code Online (Sandbox Code Playgroud)

虽然这close-connections会尝试再次实现连接,但这并不常用.我只想关闭已实现的连接,而不是实现其他连接.这样做的任何想法?

clojure lazy-sequences

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

通常获取Scala类型的清单

有没有办法一般性地获得Scala类型的清单?例如,如果我只有一个Class引用可以使用,有没有办法可以获得相应的清单?

scala manifest

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