Class

com.twitter.finatra.http.exceptions

ExceptionManager

Related Doc: package exceptions

Permalink

class ExceptionManager extends AnyRef

A class to register com.twitter.finatra.http.exceptions.ExceptionMappers and handle exceptions.

Given an exception, the ExceptionManager will find an com.twitter.finatra.http.exceptions.ExceptionMapper to handle that particular class of exceptions. If the mapper for that exception isn't registered, the ExceptionManager will try the exception's parent class, and so on, until it reaches the Throwable class. The framework registers a "root" exception mapper over Throwable which will eventually be invoked. Users are free to register their own ExceptionMapper[Throwable] which overrides the "root" exception mapper.

Annotations
@Singleton()
See also

com.twitter.finatra.http.internal.exceptions.ThrowableExceptionMapper Note: When searching for the parent exception mapper, it would be nice to traverse the entire class linearization so it works for traits/mixins too [1]. Unfortunately, implementing this would require a lot more reflection and it might not be threadsafe [2]. Doing it in Scala 2.11 might be easier and safer. [1] http://stackoverflow.com/questions/15623498/handy-ways-to-show-linearization-of-a-class [2] http://docs.scala-lang.org/overviews/reflection/thread-safety.html

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ExceptionManager
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ExceptionManager(injector: Injector, statsReceiver: StatsReceiver)

    Permalink

Value Members

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

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  4. def add[T <: ExceptionMapper[_]](implicit arg0: Manifest[T]): Unit

    Permalink

    Add a com.twitter.finatra.http.exceptions.ExceptionMapper by type T

  5. def add(collection: ExceptionMapperCollection): Unit

    Permalink

    Add a collection of com.twitter.finatra.http.exceptions.ExceptionMapper as defined by a com.twitter.finatra.http.exceptions.ExceptionMapperCollection.

    Add a collection of com.twitter.finatra.http.exceptions.ExceptionMapper as defined by a com.twitter.finatra.http.exceptions.ExceptionMapperCollection. The collection is iterated over and each mapper contained therein is added. If a mapper has already been added for the given type T in ExceptionMapper[T], it will be replaced.

    collection

    - com.twitter.finatra.http.exceptions.ExceptionMapperCollection to add.

  6. def add[T <: Throwable](mapper: ExceptionMapper[T])(implicit arg0: Manifest[T]): Unit

    Permalink

    Add a com.twitter.finatra.http.exceptions.ExceptionMapper over type T to the manager.

    Add a com.twitter.finatra.http.exceptions.ExceptionMapper over type T to the manager. If a mapper has already been added for the given T, it will be replaced.

    T

    - exception class type which should subclass java.lang.Throwable

    mapper

    - com.twitter.finatra.http.exceptions.ExceptionMapper to add

  7. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  8. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  14. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  16. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  18. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  19. def toResponse(request: Request, throwable: Throwable): Response

    Permalink

    Returns a com.twitter.finagle.http.Response as computed by the matching com.twitter.finatra.http.exceptions.ExceptionMapper to the given throwable.

    Returns a com.twitter.finagle.http.Response as computed by the matching com.twitter.finatra.http.exceptions.ExceptionMapper to the given throwable.

    request

    - a com.twitter.finagle.http.Request

    throwable

    - java.lang.Throwable to match against registered ExceptionMappers.

    returns

    a com.twitter.finagle.http.Response

  20. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  21. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped