Используйте функцию без явного импорта в Scala - PullRequest
3 голосов
/ 05 августа 2011

Мне нравится функция Scala sys.error , но я хочу выделить два случая: внутренние ошибки (например, проблема с базой данных) и ошибки пользователя (неверный ввод).

Я пытался расширить Scala, но, похоже, это не сработало:

package scala

class UserException(msg: String) extends RuntimeException(msg)

package object err {

    def internal(message: String): Nothing =
        sys.error(message)

    def usr(message: String): Nothing =
        throw new UserException(message)
}

Как определить err.usr (), чтобы можно было использовать его безявный импорт?

Ответы [ 2 ]

3 голосов
/ 05 августа 2011

Вы не можете, только scala.Predef импортируется по умолчанию, и он не может быть расширен пользователем каким-либо полезным способом.

0 голосов
/ 06 августа 2011

Вы можете поместить эти определения в объект пакета в вашей иерархии пакетов. Тогда все в этом пакете увидит их без импорта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...