Is using Try[Unit] the proper way?

2019-02-16 17:31发布

问题:

I recently came across the concept of Try/Success/Failure, and I am wondering how to use it for a method that has the return type Unit. Is using Try[Unit] the correct way? Maybe I am too influenced from my Java background, but is it a good idea to force the caller to deal with the problem?

回答1:

Try[Unit] is normal. For example, if you persist the entity, you can use:

try { 
    em.persist(entity)
} catch{
  case ex:PersistenceException =>
  handle(ex)
} 

or just

Try(em.persist(entity)) match {
  case Success(_) => 
  case Failure(ex) => handle(ex)
}