From 7464dbf224d6d501421a8ac88872a005a28088b9 Mon Sep 17 00:00:00 2001 From: Ondra Pelech Date: Wed, 29 May 2024 14:50:13 +0200 Subject: [PATCH] Make YamlError an Exception, makes for easier interop --- .../main/scala/org/virtuslab/yaml/YamlError.scala | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/core/shared/src/main/scala/org/virtuslab/yaml/YamlError.scala b/core/shared/src/main/scala/org/virtuslab/yaml/YamlError.scala index fa5eb43cd..d60a657e8 100644 --- a/core/shared/src/main/scala/org/virtuslab/yaml/YamlError.scala +++ b/core/shared/src/main/scala/org/virtuslab/yaml/YamlError.scala @@ -9,11 +9,9 @@ import org.virtuslab.yaml.internal.load.reader.token.TokenKind /** * An ADT representing a decoding failure. */ -sealed trait YamlError { - def msg: String -} +sealed abstract class YamlError(val msg: String) extends Exception(msg) -final case class ParseError(msg: String) extends YamlError +final case class ParseError(override val msg: String) extends YamlError(msg) object ParseError { def from(expected: String, got: Token): ParseError = ParseError( s"""|Expected @@ -23,11 +21,11 @@ object ParseError { def from(expected: TokenKind, got: Token): ParseError = ParseError.from(expected.toString, got) } -final case class ComposerError(msg: String) extends YamlError +final case class ComposerError(override val msg: String) extends YamlError(msg) -final case class ModifyError(msg: String) extends YamlError +final case class ModifyError(override val msg: String) extends YamlError(msg) -final case class ConstructError(msg: String) extends YamlError +final case class ConstructError(override val msg: String) extends YamlError(msg) object ConstructError { private def from( errorMsg: String, @@ -65,7 +63,7 @@ object ConstructError { def from(t: Throwable): ConstructError = from(t.getMessage, None, None) } -final case class ScannerError(msg: String) extends Throwable with YamlError with NoStackTrace +final case class ScannerError(override val msg: String) extends YamlError(msg) object ScannerError { def from(obtained: String, got: Token): ScannerError = ScannerError( s"""|Obtained