Tengo una excepción personalizada de clase como la siguiente :

case class CustomException(errorMsg:String)  extends Exception(error:String)

Todo lo que necesito que cuando cojo excepción es para tirar mi excepción personalizada y pasar mi mensaje de error a la excepción personalizada .
Que puedo esperar de CustomException constructor para la llamada a super(mensaje de error)
Sin embargo , esto no es lo que pasa ahora y tengo un error de compilación .

 catch {
      case s: Exception => throw CustomException("This is a custom message")
    }

¿Cómo me he de llamar a la super constructor :

super(errorMessage)
InformationsquelleAutor Echo | 2011-07-17

2 Comentarios

  1. 35
    case class CustomException(errorMsg:String)  extends Exception(errorMsg)
    • Thx. Sin embargo tengo curiosidad por qué Scala no tiene super(errorMsg) como Java !!
    • Porque no es Java, y debido a un super constructor puede solo se llamará a partir de una clase principal del constructor, e incluso entonces sólo puede ser llamado como la primera operación en un constructor. Scala sintaxis mejor representa esta restricción impuesta por la JVM)
    • Lo que si desea que ambos excepción de constructores (cadena,arrojar) y (string) para ser implementado en su excepción personalizada?
    • Ok me imaginaba una solución para esto: class FrontendException(message: String, t: Throwable) extends RuntimeException(message, t) { def this(m: String) = this(m, null); def this(t: Throwable) = this(null, t) } pero de alguna manera algo le duele cuando hago uso de valores nulos en la scala
  2. 7
    case class CustomException(errorMsg:String)  extends Exception(errorMsg)

    Estás llamando al constructor de la superclase, pero el argumento está pasando (error) no está atado a nada.

Dejar respuesta

Please enter your comment!
Please enter your name here