#exception #scala #notimplementedexception
#исключение #scala #notimplementedexception
Вопрос:
Каковы общие стандартные исключения в Scala? Меня особенно интересует, как это . NotImplementedException
Вызван эквивалент Net?
ОБНОВЛЕНИЕ: ответ о NotImplementedException
, кажется, org.apache.commons.lang.NotImplementedException
Ответ №1:
Почти ничего:
package scala {
final class MatchError(obj: Any) extends RuntimeException
final class UninitializedError extends RuntimeException("uninitialized value")
final case class UninitializedFieldError (msg: String) extends RuntimeException(msg)
package util.regex {
class SyntaxError(e: String) extends RuntimeException(e)
}
package xml {
class BrokenException() extends java.lang.Exception
case class MalformedAttributeException(msg: String) extends RuntimeException(msg)
package dtd {
case class ValidationException(e: String) extends Exception(e)
}
package include {
class CircularIncludeException(message: String) extends XIncludeException
class UnavailableResourceException(message: String) extends XIncludeException(message)
class XIncludeException(message: String) extends Exception(message)
}
package parsing {
case class FatalError(msg: String) extends java.lang.RuntimeException(msg)
}
}
}
Остальное происходит из Java, которые охватывают практически все уголки. Возникает вопрос о том, что эти методы Scala используют на других платформах, не так ли?
Комментарии:
1. Это дает довольно четкое представление о том, насколько легко создавать собственные пользовательские исключения и даже ошибки, если это работает с Java. Просто создайте однострочный класс в объекте и используйте по мере необходимости. последний класс MyException(arg:String) расширяет RuntimeException() или, как показано в FatalError, с java.lang.RuntimeException(msg). Хороший собрал.
Ответ №2:
В NotImplementedException
настоящее время рассматривается, вероятно, для Scala 2.10. Посмотрите этот поток.
Комментарии:
1.
UnsupportedOperationException
конечно, это не рассматривается для Scala 2.10. Он долгое время был частью библиотеки Java. Речь идет о добавлении удобного метода, который выдает его в Predef.2. Прежде всего, UnsupportedOperationException и NotImplementedException означают совершенно разные вещи, и оба они необходимы (я активно использовал их оба в своих проектах на C #). И вопрос в том, что использовать сегодня, в Scala 2.9.1? Я использую, чтобы определить класс, а затем реализовать его метод за методом, используя «throw new NotImplementedException ()» как еще не реализованные тела методов и много раз компилирую проект, прежде чем все реализовать. Но в Scala кажется, что я должен реализовать все функции, возвращая некоторые фиктивные данные — это может вызвать ошибки и просто раздражает.
3. Начиная с 2.10,
???
было добавлено вPredef
. Теперь вы можете писать код, подобныйclass Thing { def getThing = ??? }
. ВызовgetThing
вызоветscala.NotImplementedError
сообщение «отсутствует реализация».
Ответ №3:
Вы можете просто использовать любое значение по умолчанию, которое уже существует в Java. Scala на самом деле ничего не добавляет к стандартным исключениям в Java.