2011-08-05 89 views
3

明确导入使用功能我喜欢Scala的sys.error功能 - 但我想区分两种情况:内部错误(例如数据库的问题)和用户错误(无效输入)。没有在斯卡拉

我试图延长斯卡拉 - 但它似乎不工作:

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(),以便能够使用它没有一个明确的进口?

回答

3

您不能,只有scala.Predef默认导入,并且它不是用户可扩展的任何有用的方式。

+0

我害怕这个答案;-) – stephanos

0

您可以将这些定义放在您的程序包层次结构的包对象上。然后,该软件包上的所有内容都将无需导入就可以看到它