Search code examples
scalaerror-handlingscala-2.10

Is using Try[Unit] the proper way?


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?


Solution

  • 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)
    }