aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/FirrtlException.scala
blob: 9df881bcda6a2d2f926d3d87f842b8a9276e4750 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// SPDX-License-Identifier: Apache-2.0

package firrtl

import scala.util.control.NoStackTrace

/** Exception indicating user error
  *
  * These exceptions indicate a problem due to bad input and thus do not include a stack trace.
  * This can be extended by custom transform writers.
  */
class FirrtlUserException(message: String, cause: Throwable = null)
    extends RuntimeException(message, cause)
    with NoStackTrace

/** Wraps exceptions from CustomTransforms so they can be reported appropriately */
case class CustomTransformException(cause: Throwable) extends Exception("", cause)

/** Exception indicating something went wrong *within* Firrtl itself
  *
  * These exceptions indicate a problem inside the compiler and include a stack trace to help
  * developers debug the issue.
  *
  * This class is private because these are issues within Firrtl itself. Exceptions thrown in custom
  * transforms are treated differently and should thus have their own structure
  */
private[firrtl] class FirrtlInternalException(message: String, cause: Throwable = null)
    extends Exception(message, cause)