2014-02-19 65 views
4

我將一些Haskell代碼移植到Scala中。在Haskell中,我可以使用錯誤函數。看起來在某些時候你可以在Scala中做到這一點,但是IDE告訴我現在這已經被棄用了。這裏是代碼:不推薦使用Scala錯誤函數。什麼是替代方案?

def prime (n : Int) : Boolean =() match { 
    case _ if n < 1 => error("not a positive integer") 
    case _ if n == 1 => false 
    case _ => ld (n) == n 
} 

我現在用什麼來代替Scala中的錯誤函數?

+1

作爲一個說明,你真的應該避免'error'在Haskell的東西一點點更好,少「完全崩潰該程序「-y – jozefg

+0

這些是我正在寫和移植的小程序。 –

回答

14

您應該使用sys.error作爲mentioneddeprecated消息。

@deprecated("Use `sys.error(message)` instead", "2.9.0") 

您可以用-deprecation選項運行斯卡拉得到這個消息:

scala> def t = error("t") 
<console>:7: warning: method error in object Predef is deprecated: Use `sys.error(message)` instead 
相關問題