/* sbt -- Simple Build Tool
 * Copyright 2011 Mark Harrah
 */
package sbt

final class MessageOnlyException(override val toString: String) extends RuntimeException(toString)

/**
 * A dummy exception for the top-level exception handler to know that an exception
 * has been handled, but is being passed further up to indicate general failure.
 */
final class AlreadyHandledException(val underlying: Throwable) extends RuntimeException

/**
 * A marker trait for a top-level exception handler to know that this exception
 * doesn't make sense to display.
 */
trait UnprintableException extends Throwable

/**
 * A marker trait that refines UnprintableException to indicate to a top-level exception handler
 * that the code throwing this exception has already provided feedback to the user about the error condition.
 */
trait FeedbackProvidedException extends UnprintableException