trait CantonError extends BaseCantonError
CantonErrors are logged immediately when they are created. Therefore, they usually expect an implicit com.digitalasset.canton.logging.ErrorLoggingContext to be around when they are created. If you are creating such an error in a class extending com.digitalasset.canton.logging.NamedLogging, then the implicit function will provide you with such a context. If you don't have that context, then you can also use BaseCantonError and invoke the logging yourself at a later point in time (which is what we do, for example, with TransactionError).
- Alphabetic
- By Inheritance
- CantonError
- BaseCantonError
- BaseError
- LocationMixin
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def cause: String
A human readable string indicating the error
A human readable string indicating the error
- Definition Classes
- BaseError
- abstract def code: ErrorCode
The error code, usually passed in as implicit where the error class is defined
The error code, usually passed in as implicit where the error class is defined
- Definition Classes
- BaseError
- abstract def loggingContext: ErrorLoggingContext
The logging context obtained when we created the error, usually passed in as implicit via com.digitalasset.canton.logging.NamedLogging
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def asGoogleGrpcStatus(implicit loggingContext: ErrorLoggingContext): Status
- Definition Classes
- BaseCantonError
- def asGrpcError: StatusRuntimeException
- def asGrpcError(implicit loggingContext: ErrorLoggingContext): StatusRuntimeException
- Definition Classes
- BaseCantonError
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- def context: Map[String, String]
The context (declared fields) of this error
The context (declared fields) of this error
- Definition Classes
- BaseCantonError → BaseError
- def definiteAnswerO: Option[Boolean]
Controls whether a
definite_answer
error detail is added to the gRPC status codeControls whether a
definite_answer
error detail is added to the gRPC status code- Definition Classes
- BaseError
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val location: Option[String]
Contains the location where the error has been created.
Contains the location where the error has been created.
- Definition Classes
- LocationMixin
- def log(): Unit
- def log()(implicit loggingContext: ErrorLoggingContext): Unit
- Definition Classes
- BaseCantonError
- def logOnCreation: Boolean
Flag to control if an error should be logged at creation
Flag to control if an error should be logged at creation
Generally, we do want to log upon creation, except in the case of "nested" or combined errors, where we just nest the error but don't want it to be logged twice. See com.digitalasset.canton.error.ParentCantonError as an example.
- def logWithContext(extra: Map[String, String] = Map())(implicit contextualizedErrorLogger: ContextualizedErrorLogger): Unit
- Definition Classes
- BaseError
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def resources: Seq[(ErrorResource, String)]
The resources related to this error
The resources related to this error
We return the set of resources via com.google.rpc.ResourceInfo. Override this method in order to return resource information via com.google.rpc.Status
- Definition Classes
- BaseError
- def retryable: Option[ErrorCategoryRetry]
Returns retryability information of this particular error
Returns retryability information of this particular error
In some cases, error instances would like to provide custom retry intervals. This can be achieved by locally overriding this method.
Do not use this to change the contract of the error categories. Non-retryable errors shouldn't be made retryable. Only use it for adjusting the retry intervals.
- Definition Classes
- BaseError
- def rpcStatus(overrideCode: Option[Code] = None)(implicit loggingContext: ContextualizedErrorLogger): Status
- Definition Classes
- BaseError
- def rpcStatusWithoutLoggingContext(): Status
- Definition Classes
- BaseCantonError
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def throwableO: Option[Throwable]
An optional argument to log exceptions
An optional argument to log exceptions
If you want to log an exception as part of your error, then use the following example:
object MyCode extends ErrorCode(id="SUPER_DUPER_ERROR") { case class MyError(someString: String, throwable: Throwable) extends SomeInternalError( cause = "Something failed with an exception bla", throwableO = Some(throwable) ) }
NOTE: This throwable's details are not included the exception communicated to the gRPC clients so if you want them communicated, you need to explicitly add them to the e.g. context map or cause string.
- Definition Classes
- BaseError
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])