Type/Object

com.thoughtworks.tryt.invariant

TryT

Related Docs: object TryT | package invariant

Permalink

type TryT[F[_], A] = invariant.OpacityTypes.TryT[F, A]

A monad transformer for exception handling.

Source
covariant.scala
Example:
  1. As a monad transformer, TryT should be used with another monadic data type, like scalaz.Name.

    import scalaz.Name
    import com.thoughtworks.tryt.invariant.TryT, TryT._
    type TryName[A] = TryT[Name, A]

    Given a validate function,

    def validate(s: String): Int = s.toInt

    when creating a TryT-transformed scalaz.Name from the validate,

    import scalaz.syntax.all._
    val invalidTry: TryName[Int] = validate("invalid input").point[TryName]

    then the exceptions thrown in validate call should be converted to a scala.util.Failure;

    import com.thoughtworks.tryt.invariant.TryT._
    val TryT(Name(failure)) = invalidTry
    import scala.util._
    failure should be(an[Failure[_]])

    and when there is no exception thrown in validate call,

    val validTry: TryName[Int] = validate("42").point[TryName]

    then the result of validate call should be converted to a scala.util.Success;

    val TryT(Name(success)) = validTry
    success should be(Success(42))

    and when the TryT-transformed scalaz.Name is built from a for-comprehension,

    val invalidForComprehension: TryName[Int] = for {
      i <- validate("42").point[TryName]
      j <- validate("invalid input").point[TryName]
    } yield i + j

    then the exceptions thrown in the for-comprehension should be converted to a scala.util.Failure;

    val TryT(Name(failure2)) = invalidTry
    failure2 should be(an[Failure[_]])
Note

This TryT type is an opacity alias to F[Try[A]]. All type classes and helper functions for this TryT type are defined in the companion object TryT

See also

This TryT transfomer is similar to scalaz.EitherT, except TryT handles exceptions thrown in callback functions passed to map, bind or point.

Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def getClass(): Class[_]

    Permalink
    Definition Classes
    Any

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  6. def hashCode(): Int

    Permalink
    Definition Classes
    Any
  7. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  8. def toString(): String

    Permalink
    Definition Classes
    Any

Ungrouped